<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body><div><div style="font-family: Calibri,sans-serif; font-size: 11pt;">Thanks for the info.<br>Having a single thread that manage the request may be an option. I have some concern that it would not keep up with a high volume of requests.<br><br>Cheers<br>Bix</div></div><div dir="ltr"><hr><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">Da: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;"><a href="mailto:daniel@turtleware.eu">Daniel Kochmański</a></span><br><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">Inviato: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;">‎25.‎10.‎2015 13:05</span><br><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">A: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;"><a href="mailto:strabixbox@yahoo.com">Bix</a></span><br><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">Cc: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;"><a href="mailto:ecl-devel@common-lisp.net">ecl-devel@common-lisp.net</a></span><br><span style="font-family: Calibri,sans-serif; font-size: 11pt; font-weight: bold;">Oggetto: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;">Re: GC and Threading</span><br><br></div>Hello,<br><br>Bix writes:<br><br>> Hi,<br>> just two quick question:<br>> 1. Is it possible to disable the threading model and have multiple thread<br>> to eval the code or have one ECL per thread?<br><br>You can build ECL without the threading support. You have to pass<br>"--enable-threads=no" to the configure script. You can eval the code<br>from the different threads but it's unsafe (concurrency).<br><br>Best solution would be to create a dedicated thread which will manage<br>ECL calls.<br><br>You can't run separate ECL images from the same application AFAIK. It is<br>a nice feature proposal though.<br><br>> 2. Can the garbage collector be disabled at all and have the memory<br>> managed in a reference counting fashion?<br><br>GC manages only the objects created by ECL. The collector won't scan the<br>data sectors and you have to notify it if you want your data to be<br>collectable.<br><br>GC may be disabled by calling the function `GC_disable()'. Explicit call<br>to the GC<br>><br>> I like to embed the ECL in my multithread application but I've got very<br>> restrictive constrain about thread and memory:<br>> * I can not spawn new thread but I've got concurrent thread to execute<br>> ecl call.<br><br>As above: compile ECL without the threads support and manage it from the<br>separate thread. Is that what you want?<br>> * A component that bring GC would probably not be accepted and I'm<br>> wondering if there is an alternative to that in ECL, or at least have<br>> more control how/when GC will be run.<br><br>ECL uses Boehm-Demers-Weiser Garbage Collector. More information about<br>it might be found here: http://www.hboehm.info/gc/ .<br>><br>> Can you point me out where to look in the source code to understand those<br>> aspect of ECL?<br><br>Of course. Keep in mind though that it's inherited codebase and my<br>information might be inaccurate (sorry about that).<br><br>src/c/alloc.d   - obsolete in-house GC which doesn't work<br>src/c/alloc_2.d - necessary bridging between bdwgc and ECL. `si_gc' runs<br>                  calls the GC explicitly in a safe manner<br>src/c/main.d    - `cl_boot' function starts the lisp, ecl_option_values<br>                  contains configurable options<br>src/c/unixint.d - handling the signals. Documentation available here:<br>                  https://common-lisp.net/project/ecl/manual/ch32.html<br><br>There is some documentation about GC here:<br>https://common-lisp.net/project/ecl/manual/ch30.html#ext.memory.intro<br>but it's rather scarce. Also a very important note on handling signals:<br>https://common-lisp.net/project/ecl/manual/ch32s04.html<br>><br>><br>> Thanks in advance.<br>> f.<br><br>Best regards,<br>Daniel<br><br>-- <br>Daniel Kochmański | Poznań, Poland<br>;; aka jackdaniel<br><br>"Be the change that you wish to see in the world." - Mahatma Gandhi<br></body></html>