From: SASADA Koichi Date: 2015-03-18T05:59:52+09:00 Subject: [ruby-core:68549] Re: Looking for MRI projects for Ruby Google Summer of Code 2015 I sent several ideas on previous, mail, but they are seems rejected? Btw, I have question about this project: > Cross-thread Fiber support > > MRI supports coroutines through "Fibers", a lightweight cooperative concurrency context. However, Fibers are presently bound to a single thread, and cannot be resumed in a different thread from the one they were created in. This prevents scheduling runnable Fibers in a thread pool ala similar primitives like goroutines. > > This project involves mapping out the semantic implications of resuming Fibers in a different thread from the one they're created in, paying attention to all of the potential problems e.g. holding a mutex while suspended, then making the corresponding changes to MRI. The resulting project should allow Fibers to be resumed between different Ruby threads in a way that is safe and won't corrupt memory. > > Prerequisites: C, concurrency > Programming areas include: C, concurrency, multi-threaded programming. Ruby knowledge helpful > Estimated difficulty level: Difficult > Potential mentors: @bascule quoted from https://github.com/rubygsoc/rubygsoc/wiki/Ideas-List Fiber captures also machine stack. How to resume it on the other threads? It is very interesting. -- // SASADA Koichi at atdot dot net