[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