<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br>Am 31.10.2013 um 10:05 schrieb <a href="mailto:gainsttime@yandex.ua">gainsttime@yandex.ua</a>:<br><br><blockquote type="cite">On Wed, 30 Oct 2013, Paul Meurer wrote:<br><br><blockquote type="cite"> I did do several other tests:<br><br> The code runs without problems both in ACL 9.0-smp, and in SBCL (both 64 bit Linux, 16 cores).<br><br> Then I tried to build a minimal example that doesn't use any extra libraries, just plain CCL and a<br> very basic C lib, and I think I somehow succeeded.<br><br> Here is the C library:<br><br> ---<br> // threadtest.c<br> // Compilation:<br> // gcc -Bsymbolic -shared threadtest.c -fPIC -L/usr/local/lib -o threadtest.so;<br> #include <stdio.h><br><br> char *getstring() { return "asdfasdfasdfasdfasdfasdfasdfasdf" ; }<br> ---<br><br> and here the Lisp code.<br><br> ---<br> (open-shared-library "threadtest.so")<br><br> (defun getstring () (%get-cstring (external-call "getstring" :address)))<br><br> (dotimes (i 16)<br> (process-run-function<br>  (format nil "getstring~a" i)<br>  (lambda (i)<br>    (let ((list ())<br>   (size 0))<br>      (dotimes (i 100000)<br> #-consing<br> (incf size (length (getstring)))<br> #+consing<br> (push (getstring) list))))<br>  i))<br> ---<br><br> Again, the equivalent code (using cffi) runs fine in Allegro, and crashes in CCL. It crashes<br> immediately with the consing variant, and only on the second or third run with the non- (or<br> less)-consing variant. The crashes are of the same type as with the Postgres lib.<br><br> You might object that my simple-minded library is not threaded. If this is a valid objection, I<br> will try to write a threaded lib with a dedicated thread/connection for each lisp process. (I still<br> have to learn how this is done.) Yet I am wondering why I don't see similar behavior in ACL and<br> SBCL.<br><br> - Paul<br></blockquote><br>Does CFFI variant crash in CCL?<br></blockquote><br>Yes. CFFI is in this case nothing more than a wrapper around the CCL FFI functions. I removed the CFFI dependency to make the code independent from 3rd party code.<br><br>- Paul<br><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Lucida Grande'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; ">-- <br>Paul</span>

</div>
<br></body></html>