Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Sep 2002 16:34:04 -0300
From:      Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
To:        Martin Blapp <mb@imp.ch>
Cc:        ports@freebsd.org
Subject:   Re: Patch for ogle to really exit if okle or ogle-gui is closed.
Message-ID:  <20020921193426.57792.qmail@exxodus.fedaykin.here>
In-Reply-To: <Pine.SGI.4.44.0209212049140.867963-100000@nbs.imp.ch>
References:  <Pine.SGI.4.44.0209212049140.867963-100000@nbs.imp.ch>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

        I received your report regarding ogle and message queue
pieces being left after closing it IF there is no controlling
terminal. 
        However, I can't reproduce it. I did exactly what you
said using a -STABLE box.

        1) control-f2 -> okle
        2) close (no left msqid)

        1) start application menu -> multimedia -> okle
        2) close (no left msqid)

        Are you using -CURRENT? I bet it's a problem in
current and threads since the exit clean up is done
within a separate thread.
        Can anyone reproduce this in a -STABLE box?
If we find out that this is specific to -CURRENT, I will
add this patch as an optional one.

On Sat, Sep 21, 2002 at 09:02:29PM +0200, Martin Blapp wrote:
> 
> Hi,
> 
> This patch does kill that parent process (ogle), so the shared memory
> segments get released as they should.
> 
> I used to start okle (the KDE ogle gui works *a lot* better that the
> half broken gnome stuff) from a icon, without a opened terminal. After
> closing the gui wrapper, ogle just hanged there and I had to manually
> remove the shm with "pcrm -q msqid", ann kill all ogle prozesses.
> Without that, a second call to ogle just hanged.
> 
> This may be a easy hack, but it works like a charm. Maybe you should even
> ask portmgr@ to committ this to the ogle port, since it's a big
> benefit for users.
> 
> Note that SIGKILL doesn't work. I had to use SIGINT, as one does
> in the shell with CTRL-C.
> 
> Martin
> 
> --- ogle/dvdcontrol.c.orig	Sat Aug  3 19:34:50 2002
> +++ ogle/dvdcontrol.c	Sat Sep 21 20:46:33 2002
> @@ -171,13 +171,17 @@
>   * @todo something
>   */
>  DVDResult_t DVDCloseNav(DVDNav_t *nav) {
> -
> +
> +  pid_t pid;
>    if(nav->msgq == NULL) {
>      fprintf(stderr, "dvdcontrol: already closed\n");
>      return DVD_E_Unspecified;
>    }
> 
>    MsgClose(nav->msgq);
> +
> +  pid = getppid();
> +  kill(pid, SIGINT);
> 
>    nav = NULL;
> 
> Martin
> 
> Martin Blapp, <mb@imp.ch> <mbr@FreeBSD.org>
> ------------------------------------------------------------------
> ImproWare AG, UNIXSP & ISP, Zurlindenstrasse 29, 4133 Pratteln, CH
> Phone: +41 061 826 93 00: +41 61 826 93 01
> PGP: <finger -l mbr@freebsd.org>
> PGP Fingerprint: B434 53FC C87C FE7B 0A18 B84C 8686 EF22 D300 551E
> ------------------------------------------------------------------
> 

-- 
Mario S F Ferreira - DF - Brazil - "I guess this is a signature."
Computer Science Undergraduate | FreeBSD Committer | CS Developer
flames to beloved devnull@someotherworldbeloworabove.org
feature, n: a documented bug | bug, n: an undocumented feature

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020921193426.57792.qmail>