-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Please help study a possible ChanL bug #48
Comments
Yes, I really like it, it's simple (for what passes as simple when dealing with concurrency), I've been using it for about 10 years in different project, nothing fancy, usually something like that: https://github.com/fstamour/breeze/blob/0c636e89b6956cd11d5860b9f8f2fae12c6f40ec/scratch-files/worker.lisp It's like cron but looser, e.g. "run this approximately every 10 minutes".
In the current state of the project It's been a long time, so I don't remember every details... But I'm also pretty sure it's not a bug with ChanL. I know that the issues I had were due to how I was aborting threads left and right. My solution to that was to:
There's a catch (race condition) that the thread might already be stopped (by one of the interrupt or the message sent by a channel) when the code gets to the I'll make a small experiment: I wonder what would happen if I change this function to immediately call |
I'm fairly certain that's what's happening in slime too. i.e. it's missing a handler for that specific condition. |
Thank you. I might fix slime/slime#852 soon, and will refer to your insights. |
Firstly, thank you for including ChanL as one of the few dependencies in your project! It's always nice to see people using tools I've published, rather than working in the silent vacuum that minor CL projects so frequently inhabit.
In your use of ChanL together with SLIME, you might have encountered a failure similar to this linked one; I've currently only filed the Issue in my fork due to not even being sure whether it is a bug in ChanL (if so, probably resulting from consequences of the thread pool), or something more fundamental in SLIME/Swank/SBCL.
The details from ScalpL seen in the crash report should not be relevant; the crash occurred while interrupting a hung inspection from Emacs.
The text was updated successfully, but these errors were encountered: