CLIM mail archive
[Prev][Next][Index][Thread]
Query
Date: Wed, 18 Dec 1991 13:41 EST
From: Robert Clark <rtc@antares.res.utc.com>
CLIMers:
I am running CLIM 1.0 on a Symbolics 3640. I have created an application
frame in which IO is performed. When the application frame is started, two
other processes are also started which use the application frame for IO. I
have 2 problems:
1. When output is formatted to a pane by a process other than the CLIM process,
the output is not remembered. (I.E. when scrolling or changing configuration,
the output disappears)
2. When input is requested by a process other than the CLIM process, the CLIM
accept method doesn't respond, until the input seems to circle around the
number of panes that are in the current configuration. It seems as though
there is a different input buffer for each pane. I'm not sure what's going
on here. I tried using CLIM:WITH-INPUT-FOCUS, but the function did not do
anything different
If anyone has any suggestions, I would greatly appreciate any help.
You're not going to like my suggestions, but I'll make them anyway.
CLIM is not presently either designed or implemented to support multiple
processes in the way you want to use it.
For example, at the implementation level there is no locking done on the
output record datastructures. If you require such locking, you need to
do it yourself. It is not clear to me that CLIM should provide this
locking by default, since it is potentially costly to do so, even though
very few applications will gain any benefit. The granularity at which
CLIM would have to lock would not guarantee that two processes would not
produce gubbish output anyway; it would only prevent the output record
structure from becoming corrupted.
I don't think any of us devoted any design cycles to having multiple
processes reading from a frame's input buffer. It is a sure thing that
this will not work properly.
So here are the suggestions:
(1) Do your own locking when doing output to a CLIM pane. This will
need to be done at a sufficiently high level in your application
that the output from several processes does not scribble.
(2) Don't do input except from the "main" CLIM process for the application.
Since I do not know exactly what you are doing, I can't offer better
advice. There may be smarter things that you can do under more
constrained conditions.
0,,
References:
- Query
- From: Robert Clark <rtc@antares.res.utc.com>
Main Index |
Thread Index