[Vm-dev] NativeBoost / Callbacks and Multithreading (Eliot: This is not just NB, we need you here :P)

stepharo stepharo at free.fr
Sat Apr 18 17:13:43 UTC 2015


I think that the idea of eliot is independent from NB but use FFI.
Esteban will resume his task to use NB syntax for FFI and NB as a 
back-end of the UnifiedFFI.

Stef

Le 18/4/15 18:24, Nicolai Hess a écrit :
>   
>
>
> Thank you Esteban,
>
> 2015-04-18 9:36 GMT+02:00 Esteban Lorenzano <estebanlm at gmail.com 
> <mailto:estebanlm at gmail.com>>:
>
>
>     Hi,
>
>     So… “multithread” is a complicated issue. Pharo as most Smalltalks
>     is designed thinking is as monolithic so if you are trying to make
>     the image to work in different processes… it will not be easy at
>     all :)
>     Time ago Eliot did a prototype (more than a prototype in fact, but
>     still far from “production ready”) to have Threaded FFI and I’m
>     quite sure this is the way to go, at least as a 1st milestone.
>
>     I already have a process building this experimental VM:
>
>     https://ci.inria.fr/pharo/view/VM/job/CogMTVM/
>
>
> But this one does not include NativeBoost support. Do we have a build 
> with MT and NB?
>
>
>     (No idea why windows build failed last two times… this can be a
>     random fail).
>
>     I do not remember exactly the changes needed in the image to take
>     advantage of it… it was just an instVar in Process, I think, but
>     then FFI package was adapted to take advantage of this… no idea
>     where it is now (if is already incorporated in latest FFI, which
>     we have).
>
>     Then, after this… I imagine the callback mechanism can be adapted
>     to work in multithread environments but probably we will need
>     something like isolates from Dart to provide some degree of
>     multithread processing without killing the image (but I’m just
>     thinking in loud here, this can be a really bad idea, and probably
>     there are other ways to do this better… I will let Eliot to
>     explain better).
>
>     *TL;DR: *Start for the CogMTVM, is the way to go.
>
>     cheers,
>     Esteban
>
>>     On 17 Apr 2015, at 09:06, Nicolai Hess <nicolaihess at web.de
>>     <mailto:nicolaihess at web.de>> wrote:
>>
>>     Hi,
>>
>>     I've tried to build a pharovm with multithread support. I changed
>>     the config in the
>>     pharo generator.image to use the cogmt config and was able to
>>     build a vm.
>>     But this vm crashes on startup. (windows7)
>>
>>     Is this the right way and did anyone got this to work (windows or
>>     linux)?
>>
>>     And can this work to make NB callbacks working for multithreaded
>>     libraries.
>>
>>     (I made some simple bindings for the gstreamer lib with NB, this
>>     works
>>     for simple calls (create element/change state). But I guess this
>>     won't work
>>     for any gstreamer function that requests a callback that may b e
>>     called from
>>     a different thread)
>>
>>     Would this be the right way to do:
>>     - build a vm with MT support
>>     - guard the NB callback entry/leave code with the
>>     ownVM()/disownVM() call.
>>
>>     Or is there more to do.
>>
>>     Thanks in advance
>>
>>
>>     nicolai
>>
>>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20150418/c47306d3/attachment-0001.htm


More information about the Vm-dev mailing list