Some thread/GC questions

Daniel Kochmański daniel at turtleware.eu
Thu Mar 10 06:25:06 UTC 2016


OK, sorry then for this mistake of mine.

Dnia 10 marca 2016 00:59:53 CET, Juraj Variny <juraj at blava.eu> napisał(a):
>>
>> > On Wednesday 09 March 2016 09:07:38 you wrote:
>> >> Hello,
>> >>
>> >> Juraj Variny writes:
>> >> > Hello,
>> >> >
>> >> > can you please tell me how to:
>> >> >
>> >> > 1. Initialize lisp environment in a thread that was already
>created by
>> >> > C/C++ app? Is it possible for it to share existing lisp
>environment?
>> >>
>> >> There is an example in examples/embed directory (file hello.c).
>What do
>> >> you mean by sharing an existing lisp environment? cl_boot creates
>an
>> >> environment for this instance.
>> >
>> > Say I have main thread, where cl_boot was called, with some lisp
>> environment.
>> > Then I call cl_boot in some other pre-existing thread, would it be
>able
>> to
>> > access lisp environment of the main thread, evaluate symbols
>defined
>> there,
>> > call functions etc? This is what I meant with shared environment.
>>
>> It is enought to call cl_boot once. Calling it a second time won't do
>> any harm, but the cl_boot isn't thread-safe, so don't call it twice
>at
>> the same time from different threads.
>>
>> After calling cl_boot once you should be able to work with lisp from
>any
>> thread.
>
>
>This "working with lisp from any thread"  I have tried, and got
>segfaults
>and corruption immediately. Seems that ecl_env_ptr is thread-local
>variable
>and should be properly initialized for every thread where lisp is used.

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20160310/1892d76d/attachment.html>


More information about the ecl-devel mailing list