[GRASS5] closing monitors by click

Hi all,

an annoying problem is that you cannot close GRASS monitors
by mouse click. As being teaching GRASS in seminars, first
action of students is usually to kill a monitor with a click
(close of window) which runs the monitor management into troubles.

Helena told me that in past this procedure of closing was
*possible* without confusing GRASS. I wish we could (re-)implement
this.

Maybe the lock file could be ignored if the x0, x1,.. process
is killed (by user request).

But it's really a pain to teach others not to kill a monitor
but to use d.mon instead (or tcltkgrass).

Probably someone has an idea for more monitor convenience?
These monitor troubles are one reason that many people dislike
GRASS.

Thanks in advance

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Markus,

it is really annoying, i agree.
There is still the code around in the SWITCHER.c file of the monitors
driver that closes the Grapics driver on the X event. But it doesn't
work. I digged around the X Events and modified, but i couldn't get it
to work i remember.

It may have worked with previous versions of X11 (R4??).
If some X11 specialist can tell me which ClientMessage event.type to use
(XInternAtom(); ), i'll give it a new try.

It should even be possible to redraw the screen contents on re-sizing
the window.

I won't promise anything,

Andreas

Markus Neteler wrote:

Hi all,

an annoying problem is that you cannot close GRASS monitors
by mouse click. As being teaching GRASS in seminars, first
action of students is usually to kill a monitor with a click
(close of window) which runs the monitor management into troubles.

Helena told me that in past this procedure of closing was
*possible* without confusing GRASS. I wish we could (re-)implement
this.

Maybe the lock file could be ignored if the x0, x1,.. process
is killed (by user request).

But it's really a pain to teach others not to kill a monitor
but to use d.mon instead (or tcltkgrass).

Probably someone has an idea for more monitor convenience?
These monitor troubles are one reason that many people dislike
GRASS.

Thanks in advance

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

--
Andreas Lange, 65187 Wiesbaden, Germany, Tel. +49 611 807850
Andreas.Lange@Rhein-Main.de - A.C.Lange@GMX.net

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hello,

I was looking in to optimizing GRASS for the AltiVec Velocity Engine coupled within the G4 processor (running under MacOS X). One would benefit from 1.5x to 11x fold improvement in performance!

I have started looking into it and it looks like if I used the Altivec math libraries in place of the current math libraries, the code would then be optimized.

Unfortunately it looks like fully understanding a robust implementation is just a bit over my head.

If someone could take a look at: http://developer.apple.com/hardware/ve/vector_libraries.html and give me an idea as to how to proceed with the optimizations, and which code would benefit most from the AltiVec unit, I think that Macs could become the choice platform for GRASS.

Thanks,
--
Jeshua Lacock
Cartographer/Owner
http://SierraMaps.com
http://3dTopoMaps.com
Telephone: (760) 935-4481

---------------------------------------- If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

On Tue, Nov 28, 2000 at 03:19:53PM -0800, Jeshua Lacock wrote:

Hello,

I was looking in to optimizing GRASS for the AltiVec Velocity Engine
coupled within the G4 processor (running under MacOS X). One would
benefit from 1.5x to 11x fold improvement in performance!

I have started looking into it and it looks like if I used the
Altivec math libraries in place of the current math libraries, the
code would then be optimized.

I don't know what this AltiVec thing is, but I think it would hardly
benefit GRASS to link against some "optimized" math library. Maybe for
some modules. Mostly the biggest gains will be found by having fast
disks and a fast CPU with sufficient memory to avoid swap. Disk I/O is
one of the biggest bottlenecks, especially when dealing with any
relatively large rasters.

GRASS has traditionally favored portability over optimizations and
platform dependent features. It's always better to worry about solving
the problem in a robust fashion and then, when everything works,
thinking about improving performance.

Unfortunately it looks like fully understanding a robust
implementation is just a bit over my head.

If someone could take a look at:
http://developer.apple.com/hardware/ve/vector_libraries.html and give
me an idea as to how to proceed with the optimizations, and which
code would benefit most from the AltiVec unit, I think that Macs
could become the choice platform for GRASS.

--
Eric G. Miller <egm2@jps.net>

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi Markus, Andreas

Andreas Lange wrote:

Markus Neteler wrote:
>
> an annoying problem is that you cannot close GRASS monitors
> by mouse click.

Just to let you know, on SGI, it appears that closing Grass monitors by
mouse click (ie using the window manager "close" option - there is no
"x" button on SGI window borders) works fine even after exiting grass. I
don't know if this helps with anything, but I thought I would let you
know.

--
Sincerely,

Jazzman (a.k.a. Justin Hickey) e-mail: jhickey@hpcc.nectec.or.th
High Performance Computing Center
National Electronics and Computer Technology Center (NECTEC)
Bangkok, Thailand

People who think they know everything are very irritating to those
of us who do. ---Anonymous

Jazz and Trek Rule!!!

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi Markus, Hi Justin,

you can close the grass monitor on Linux with the "Kill" option too (i
use a lesstif/motif window manager on linux that has the
IRIX-look-and-feel). But you can not restart the same (x0..) driver
again, as the lockfile is not removed.
On the SGI i can close the monitor with close or exit (mouse) and
re-open it again.

This all seems to be for the same reason that d.mon -L does not work on
linux. I see now that i was looking in the wrong place (SWITCHER.c), the
problem must be somewhere in the code that checks for the monitors
running. There must be a timeout/deadlock, as d.mon -L hangs forever if
it encounters a running monitor.
This may be because some system call have other semantics on linux than
on commercial unix.

I'll look into this, until now i can only close the monitor on linux and
re-open it after i call d.mon -L once. This produces an error message
and the lock seems to be gone.

cu,

Andreas

Justin Hickey wrote:

Hi Markus, Andreas

Andreas Lange wrote:
> Markus Neteler wrote:
> >
> > an annoying problem is that you cannot close GRASS monitors
> > by mouse click.

Just to let you know, on SGI, it appears that closing Grass monitors by
mouse click (ie using the window manager "close" option - there is no
"x" button on SGI window borders) works fine even after exiting grass. I
don't know if this helps with anything, but I thought I would let you
know.

--
Andreas Lange, 65187 Wiesbaden, Germany, Tel. +49 611 807850
Andreas.Lange@Rhein-Main.de - A.C.Lange@GMX.net

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi Andreas,

On Wed, Nov 29, 2000 at 02:06:41PM +0100, Andreas Lange wrote:

Hi Markus, Hi Justin,

you can close the grass monitor on Linux with the "Kill" option too (i
use a lesstif/motif window manager on linux that has the
IRIX-look-and-feel). But you can not restart the same (x0..) driver
again, as the lockfile is not removed.

Yes, that's right. The left-over lock file is causing troubles.
Suggestion: Maybe a check could be added like this:
- lock file found
      - check if monitor process is (still) running
            - yes: lock
            - no: remove the lock file, start monitor
- lock file not found
      - start monitor
I did not look into the code, but maybe this is a way to get rid
of the problem.

On the SGI i can close the monitor with close or exit (mouse) and
re-open it again.

Helena reported as well that SGI users don't face this problem (lucky
people!)

This all seems to be for the same reason that d.mon -L does not work on
linux. I see now that i was looking in the wrong place (SWITCHER.c), the
problem must be somewhere in the code that checks for the monitors
running. There must be a timeout/deadlock, as d.mon -L hangs forever if
it encounters a running monitor.
This may be because some system call have other semantics on linux than
on commercial unix.

Sidenote: If you use the IPC based driver, the d.mon -L is working (on
Linux). With fifos it doesn't. Maybe helpful? So only the IPC-modified
files might be related to this problem (probably reduces the number of files
to be checked).

I'll look into this, until now i can only close the monitor on linux and
re-open it after i call d.mon -L once. This produces an error message
and the lock seems to be gone.

cu,

Andreas

Yours

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi 2 all,

i spend a lot of time in investigating this problem, but i will give up
on this.
I'll describe my findings in the hope that someone with more background
on Linux system programming can help us.

I used ddd with a non-stripped build of the whole GRASS source to look
at the behaviour of d.mon -L/-l, start/stop, which call the programs
mon.status, mon.start, mon.stop etc.

I can circumcise the problem in the function fifoto in
src/libes/raster/io.c.

The idea with the fifoto function is that the fifos for reading and
writing are opened, and if can be opened, the x driver is running. If a
timeout occurs (i. e. the open blocks), the driver is not running or has
lost connection.

This is done as follows:

no_mon = 0; /* global variable is reset to signal that no monitor is
running */
sigalarm = signal(SIGALRM, dead); /* SIGALRM is set to call a own
function dead,
which does nothing than setting no_mon to 1 */
alarm(alarm_time); /* shedule the alarm to come in in alarm_time seconds
*/
_wfd = open(output, O_WRONLY); /* open the fifo, if timeout occurs, the
alarm function will cancel */
alarm(0); /* cancel/reset the alarm function */
if (no_mon) /* monitor is not listening on this fifo */
  return 0;

The same is repeated for the reading fifo.

This seems to work on IRIX (what about BSD and Solaris, would be
interested in hearing from users of those systems), but on Linux the
open call hangs forever. The man page for open on IRIX describes
explicitly this form of testing if an other process is listening on a
fifo. If you use O_WRONLY & O_NONBLOCK or O_WRONLY & O_NDELAY, the open
process should not block.

There are two problems with this function:
1) There could be a race condition between the alarm call and the open
call. But this should not matter as the process should never be blocked
longer than the alarm period.
2) If system calls are restarted automatically, the open call is not
interrupted with the SIGALARM handler returning. So the open hangs
forever. This is IMHO the problem here.

One other problem is that in the original code not O_RDONLY/O_WRONLY,
but 0/1 are used.

I tried already to implement this with setjmp/longjmp calls, but i could
not get this to work either. The monitor starts, but the selection of
the monitor fails alltogether.

The removing of the lockfile is not the culprit, as i can test with
IRIX. If i kill a monitor, the lockfile is not removed there either. But
if i have a monitor running (x0) and i run "d.mon start=x0" the module
exits with the message "monitor x0 already running", while with Linux
the module blocks forever (in the open call in fifoto).

With the IPC setup the fifoto function does not use a timeout (and never
checks if the monitor is not open). I have no idea how this works.

And i think we really need to merge together the fifo and IPC code, so
that we can recompile with a compiler switch and some #ifdefs in the
source. The way it is now (switching by copying files from different
directories) is not usable. And i have not found a solution how i can
use the IPC setup on Cygwin/Win32 in the first run. Compiling the whole
source and issuing ./README.ipc -cantrememberflags and to recompile the
whole thing is impractical.

Please feel free to comment on this,

Andreas

Markus Neteler wrote:

Hi Andreas,

On Wed, Nov 29, 2000 at 02:06:41PM +0100, Andreas Lange wrote:
> Hi Markus, Hi Justin,
>
> you can close the grass monitor on Linux with the "Kill" option too (i
> use a lesstif/motif window manager on linux that has the
> IRIX-look-and-feel). But you can not restart the same (x0..) driver
> again, as the lockfile is not removed.
Yes, that's right. The left-over lock file is causing troubles.
Suggestion: Maybe a check could be added like this:
- lock file found
      - check if monitor process is (still) running
            - yes: lock
            - no: remove the lock file, start monitor
- lock file not found
      - start monitor
I did not look into the code, but maybe this is a way to get rid
of the problem.

> On the SGI i can close the monitor with close or exit (mouse) and
> re-open it again.
Helena reported as well that SGI users don't face this problem (lucky
people!)

> This all seems to be for the same reason that d.mon -L does not work on
> linux. I see now that i was looking in the wrong place (SWITCHER.c), the
> problem must be somewhere in the code that checks for the monitors
> running. There must be a timeout/deadlock, as d.mon -L hangs forever if
> it encounters a running monitor.
> This may be because some system call have other semantics on linux than
> on commercial unix.
Sidenote: If you use the IPC based driver, the d.mon -L is working (on
Linux). With fifos it doesn't. Maybe helpful? So only the IPC-modified
files might be related to this problem (probably reduces the number of files
to be checked).

> I'll look into this, until now i can only close the monitor on linux and
> re-open it after i call d.mon -L once. This produces an error message
> and the lock seems to be gone.
>
> cu,
>
> Andreas

Yours

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

--
Andreas Lange, 65187 Wiesbaden, Germany, Tel. +49 611 807850
Andreas.Lange@Rhein-Main.de - A.C.Lange@GMX.net

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Markus,

Could update please update the read me at:

ftp://www.geog.uni-hannover.de/pub/grass5_mac_os_binaries/

to be like

http://www.geog.uni-hannover.de/grass/grass5/binary/mac_os_x/

Thanks!
--
Jeshua Lacock
Cartographer/Owner
http://SierraMaps.com
http://3dTopoMaps.com
Telephone: (760) 935-4481

---------------------------------------- If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

On Wed, Nov 29, 2000 at 09:54:34PM -0800, Jeshua Lacock wrote:

Markus,

Could update please update the read me at:

ftp://www.geog.uni-hannover.de/pub/grass5_mac_os_binaries/

to be like

Bereich Geographie – Naturwissenschaftliche Fakultät – Leibniz Universität Hannover

Done.

Regards

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

On Thu, Nov 30, 2000 at 12:01:44AM +0100, Andreas Lange wrote:

Hi 2 all,

i spend a lot of time in investigating this problem, but i will give
up on this. I'll describe my findings in the hope that someone with
more background on Linux system programming can help us.

I used ddd with a non-stripped build of the whole GRASS source to look
at the behaviour of d.mon -L/-l, start/stop, which call the programs
mon.status, mon.start, mon.stop etc.

I can circumcise the problem in the function fifoto in
src/libes/raster/io.c.

The idea with the fifoto function is that the fifos for reading and
writing are opened, and if can be opened, the x driver is running. If
a timeout occurs (i. e. the open blocks), the driver is not running or
has lost connection.

This is done as follows:

no_mon = 0; /* global variable is reset to signal that no monitor is
running */
sigalarm = signal(SIGALRM, dead); /* SIGALRM is set to call a own
function dead,
which does nothing than setting no_mon to 1 */
alarm(alarm_time); /* shedule the alarm to come in in alarm_time seconds
*/
_wfd = open(output, O_WRONLY); /* open the fifo, if timeout occurs, the
alarm function will cancel */
alarm(0); /* cancel/reset the alarm function */
if (no_mon) /* monitor is not listening on this fifo */
  return 0;

The same is repeated for the reading fifo.

This seems to work on IRIX (what about BSD and Solaris, would be
interested in hearing from users of those systems), but on Linux the
open call hangs forever. The man page for open on IRIX describes
explicitly this form of testing if an other process is listening on a
fifo. If you use O_WRONLY & O_NONBLOCK or O_WRONLY & O_NDELAY, the open
process should not block.

It's not the blocking that's the problem it's the differing semantics of
the signal() function on BSD and SYSV. The GNU Libc documentation says
it uses the semantics of BSD when using signal(). But those semantics
can be changed depending if something like __SYSV__ is defined (I don't
think that's the exact symbol). Anyway, the docs also strongly
recommend the POSIX.1 standard sigaction() instead. I implemented this
last night for fifoto() and it seems to do the right thing. I need to
clean up how it save/restores the signal state, but that shouldn't
affect how it functions now. So try it out!

Note: I tried using O_NONBLOCK and then using fcntl() to unset the flag,
but intermittent errors of EOF being left on the fifo pipe were causing
problems with some programs some of the time. I guess sigaction()
should be pretty widely supported, so I think we should consider using
it whenever signal handling is required.

There are two problems with this function:
1) There could be a race condition between the alarm call and the open
call. But this should not matter as the process should never be blocked
longer than the alarm period.
2) If system calls are restarted automatically, the open call is not
interrupted with the SIGALARM handler returning. So the open hangs
forever. This is IMHO the problem here.

One other problem is that in the original code not O_RDONLY/O_WRONLY,
but 0/1 are used.

I spotted that quick and it's gone. That is definitely bad juju.

I tried already to implement this with setjmp/longjmp calls, but i could
not get this to work either. The monitor starts, but the selection of
the monitor fails alltogether.

The removing of the lockfile is not the culprit, as i can test with
IRIX. If i kill a monitor, the lockfile is not removed there either. But
if i have a monitor running (x0) and i run "d.mon start=x0" the module
exits with the message "monitor x0 already running", while with Linux
the module blocks forever (in the open call in fifoto).

The above fix does not seem to change the problem with properly
responding to the destroywindow() event in X and removing the
lockfile (I don't think that's the right name for the event, but you get
the idea).

With the IPC setup the fifoto function does not use a timeout (and never
checks if the monitor is not open). I have no idea how this works.

This IPC thing need to be reconsidered anyway since it doesn't seem to
solve the portability issues like we had hoped.

And i think we really need to merge together the fifo and IPC code, so
that we can recompile with a compiler switch and some #ifdefs in the
source. The way it is now (switching by copying files from different
directories) is not usable. And i have not found a solution how i can
use the IPC setup on Cygwin/Win32 in the first run. Compiling the whole
source and issuing ./README.ipc -cantrememberflags and to recompile the
whole thing is impractical.

Yea, that would be pretty straightforward for the IPC code if I remember
correctly (just a few changes). I wanted to try the same for a sockets
method, but function arguments/return values had to change.

--
Eric G. Miller <egm2@jps.net>

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

On Tue, Nov 28, 2000 at 04:01:47PM +0000, Markus Neteler wrote:

Hi all,

an annoying problem is that you cannot close GRASS monitors
by mouse click. As being teaching GRASS in seminars, first
action of students is usually to kill a monitor with a click
(close of window) which runs the monitor management into troubles.

Helena told me that in past this procedure of closing was
*possible* without confusing GRASS. I wish we could (re-)implement
this.

Maybe the lock file could be ignored if the x0, x1,.. process
is killed (by user request).

But it's really a pain to teach others not to kill a monitor
but to use d.mon instead (or tcltkgrass).

Probably someone has an idea for more monitor convenience?
These monitor troubles are one reason that many people dislike
GRASS.

Thanks in advance

After finding that platforms handle the signal() call differently, I'm
convinced this problem is related. I did a few tests, and the results
seem to indicate the XDRIVER gets blocked somewhere and won't actually
process the destroy event until it gets unblocked. So, for systems that
are affected, if you click the close button on the monitor, then do
"d.mon -L" (which should work now), the window will immediately close.
This leads me to believe it's blocked on an open() or read() on the _rfd
fifo file descriptor. I haven't quite tracked it down, but I'm
confident that's part of the problem.

--
Eric G. Miller <egm2@jps.net>

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

On Fri, Dec 01, 2000 at 01:27:49AM -0800, Eric G . Miller wrote:

On Tue, Nov 28, 2000 at 04:01:47PM +0000, Markus Neteler wrote:
> Hi all,
>
> an annoying problem is that you cannot close GRASS monitors
> by mouse click. As being teaching GRASS in seminars, first
> action of students is usually to kill a monitor with a click
> (close of window) which runs the monitor management into troubles.
>
> Helena told me that in past this procedure of closing was
> *possible* without confusing GRASS. I wish we could (re-)implement
> this.
>
> Maybe the lock file could be ignored if the x0, x1,.. process
> is killed (by user request).
>
> But it's really a pain to teach others not to kill a monitor
> but to use d.mon instead (or tcltkgrass).
>
> Probably someone has an idea for more monitor convenience?
> These monitor troubles are one reason that many people dislike
> GRASS.
>
> Thanks in advance

After finding that platforms handle the signal() call differently, I'm
convinced this problem is related. I did a few tests, and the results
seem to indicate the XDRIVER gets blocked somewhere and won't actually
process the destroy event until it gets unblocked. So, for systems that
are affected, if you click the close button on the monitor, then do
"d.mon -L" (which should work now), the window will immediately close.
This leads me to believe it's blocked on an open() or read() on the _rfd
fifo file descriptor. I haven't quite tracked it down, but I'm
confident that's part of the problem.

Hi Eric,

you are right:

if I click the close button on the monitor, then do
d.mon -L
name description status
---- ----------- ------

(which works!) , the window will immediately close. Even with any other
d.* command.

Hopefully this is an indicator.

Yours

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi Eric, Hi Markus,

Hi Eric,

you are right:

if I click the close button on the monitor, then do
d.mon -L
name description status
---- ----------- ------

(which works!) , the window will immediately close. Even with any other
d.* command.

Hopefully this is an indicator.

Yours

Markus

I can confirm this. I get a warning "Explicit shutdown or X connection
lost" etc. on invoking d.mon -L or d.mon start=x0. So Erics assuption is
correct.
I have still an unstripped build of grass around, but it is difficult to
debug this because the driver is forked and not connected to a terminal.
I'll look again. The problme must be on the side of the driver, the fix
now in io.c was on the side of the raster lib. So the file SWITCHER.c is
the place to look.

The file ServeXevent.c seems to be the place to change the "button" or
action the monitor is closed with. I think it should be possible to use
"close" instead of "kill" (these names may vary across the different
window managers). I'll dig into the documentation.

But this'll have to wait, my build is currently switched to the ipc
system.

cu,

Andreas

--
Andreas Lange, 65187 Wiesbaden, Germany, Tel. +49 611 807850
Andreas.Lange@Rhein-Main.de - A.C.Lange@GMX.net

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

On Fri, Dec 01, 2000 at 01:27:49AM -0800, Eric G . Miller wrote:

This leads me to believe it's blocked on an open() or read() on the _rfd
fifo file descriptor. I haven't quite tracked it down, but I'm
confident that's part of the problem.

If the platform in question has a symbolic debugger (like gdb), then use
it to attach to the running process, then get a stack trace to find out
where it is up to.

--
James Cameron mailto:quozl@us.netrek.org http://quozl.netrek.org/

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Dear XDRIVER lovers,

[btw: the XDRIVER code compiles stable now!]

concerning the close monitor by click problem:

I tried the current driver on Solaris, and
I *can* close it by click without problems! :slight_smile:

So only on Linux this close procedure fails.

As Andreas suggested: Maybe some _SYS_V_ (or similar)
statements would do? I am not familiar with code
internals though.

Just a report :slight_smile:

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hi Markus,

thanks for testing. This supports my idea that this all is a problem
with different semantics of the signal function on Linux and
"commercial" Unix like Solaris, IRIX etc.

The changes that Eric made are though IMHO better, as sigaction is the
newer POSIX standard.

But i have currently no time to work on this. I can't start something i
will not be able to finish in the next time. I just checked in yesterday
night the typecasts that allow to compile on the CRAY.

I would propose just to fix the new problem with the lib. Leave it
working in this state.

What has to be done later:
- remove the remaining comment-in-comment errors,
- rework the code (there are unused fragments)
- merge the fifo and ipc thing together
- maybe re-merge the XDRIVER/lib and lib ?
- clean up
- implement the compiler switch for ipc/fifo and the according actions
(makefifos)

And the CELL driver is broken.

I want to ask everyone that wants to work on this to coordinate with me,
so that we avoid doing things twice and get conflicts on CVS merge. I
already started the fifo/ipc merge.

Good luck for the release!

Andreas

Markus Neteler wrote:

Dear XDRIVER lovers,

[btw: the XDRIVER code compiles stable now!]

concerning the close monitor by click problem:

I tried the current driver on Solaris, and
I *can* close it by click without problems! :slight_smile:

So only on Linux this close procedure fails.

As Andreas suggested: Maybe some _SYS_V_ (or similar)
statements would do? I am not familiar with code
internals though.

Just a report :slight_smile:

Markus

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

--
Andreas Lange, 65187 Wiesbaden, Germany, Tel. +49 611 807850
Andreas.Lange@Rhein-Main.de - A.C.Lange@GMX.net

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'