[Ecls-list] ecl-0.9e msvc 7.1 linker error (windows).

Juan Jose Garcia Ripoll lisp at arrakis.es
Fri Jan 21 01:31:14 UTC 2005


Valery Syssik wrote:

>Please tell me is ECL design is thread safe, and what kind of
>serialization required.
>  
>
I forgot to add, that, as far as resources are properly created for each 
thread running lisp code, ECL is thread safe. You can, for instance, 
create and destroy symbols in each thread, load different code, etc. 
Some caveats are

- You have to be careful, like in any other language, not to mess up the 
same object from two threads. One example are hash tables. There is an 
option to create hash tables with semaphores, that allows you to safely 
modify the structure from two different threads, but other objects are 
not protected, like arrays, structures, etc.

- Similar issues apply to special variables and function bindings. 
Function bindings are global and shared by all threads. Special variable 
bindings can be either shared by all threads or be thread local, 
depending on how you create the process.

- Binary streams with strange byte sizes (like 17 bits, 3 bits, 1 bit, 
etc) are inherently thread unsafe. All other streams are thread safe as 
far as the corresponding C library is -- they are implemented using C 
streams (fread, fwrite, fopen, etc).

...

Juanjo




More information about the ecl-devel mailing list