freenode/#clim - IRC Chatlog
Search
21:39:18
slyrus1
jackdaniels there's a circular dependency problem on your branch. compiling utils.lisp gives undefined variable: CLIM:+NOWHERE+, which is defined in design.lisp, which depends on utils.lisp.
22:02:39
jackdaniel
imo we could do much better job with clipping areas, but I don't have patience to jump on that right now
22:04:11
slyrus1
good night! It's possible that it's just a font issue, but on this new box here when I click on an entry in the drawing-test test chooser, the entry "disappears". Not sure if that's a regression or not. (I doubt it, but I'll check).
22:06:27
slyrus1
But some code somewhere is probably missing some sort of warning about a font error.
4:09:33
loke
What is the “correct” way to send asynchronous messages to a CLIM thread? (I.e. I have a UI that needs to be updated in real-time based on some external event in a different thread)
7:25:44
jackdaniel
loke: there is no correct way at the moment, both event-queue and stream access are prone to races and/or corruption. you must do it from the same thread as the event loop
7:28:46
jackdaniel
I even have an idea how to mitigate the issue: in case of queue we need a mailbox which is thread safe (some implementations have it, but implementation is not super hard), in case of stream we need around methods which check for thread affinity (if foreign thread, then operation is enqueued)
7:30:57
jackdaniel
but prerequisite to meddle with multithreading is fixing single-threaded run (there is also ticket for that)
7:31:11
jackdaniel
before we make things more complicated we need to assure it works just fine for the simplest of cases
7:32:49
loke
I looked at some older code I wrote, and it seems as though it might be a correct way of doing it
7:34:00
loke
simply call EXECUTE-FRAME-COMMAND on the appropriate frame. There is code in there that, if the current frame is not the same frame, then it will create an event that will execute the command later. The event is then inserted in the event queue, and it does take a lock while doing so, which suggests to me that they thought about this.
7:36:41
jackdaniel
1) this is about commands; 2) event-queue-append is not thread safe, so this solution is erroneous; 3) in principle this is a solution which depends on the event queue being mailbox (as I suggested, though this assumption is not fulfilled)
7:38:17
jackdaniel
no, with with-lock-held it is not efficient, but correct, there is no need to worry
7:38:48
loke
Currently, my need for this has to do with the Maxima client being able to tell the documentation frame to display a specific page of documentation.
7:39:14
loke
But in the longer run, I want to use this mechanism to tell a frame that the “global input context” has changed.
7:44:24
loke
jackdaniel: The bug in question mentions that genera had a concept called the “active application”
7:45:02
jackdaniel
maybe clicking window decoraction (like you have active window with keyboard input)