[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