From: Matan Ziv-Av (matan@svgalib.org)
Date: Sun 14 Jul 2002 - 16:40:17 IDT
On Sun, 14 Jul 2002 clock@atrey.karlin.mff.cuni.cz wrote: > SVGALib is nonreentrant in the sense that when I bing SVP as a PDF viewer into > the Links browser, Links blocks the terminal and forks to run SVP. SVP gets > stuck in a text mode. BTW, ZGV also gets stuck when I bind it there. > > Links blocks the terminalby calling vga_setmode(TEXT). This is a hard question. vga_setmode(TEXT) still leaves part of svgalib (signal handlers at least, but probably some more). What you need is instead of vga_setmode(TEXT), some call vga_uninit(), which sets text mode, restores signal handlers, unmaps memory, and maybe more. With such a call, an svgalib program that wants to exec another svgalib program will need to call vga_uninit before fork+exec, and vga_init() again after. Until such a function is implemented, I think the best solution is to include svp code (with slight changes) into links. Another solution is to implement a "plugin mode" in svp, in which, it does not call any svgalib calls, but only mmaps the linear buffer from /dev/svga, and uses the mode parameters passed to in command line, or the environment. In such case, links needs to setup the correct mode and palette, and pass the parameters to svp. -- Matan Ziv-Av. matan@svgalib.org ------------------------------------------------------------------ Unsubscribe: To: listbot@svgalib.org Body: unsubscribe linux-svgalib
This archive was generated by hypermail 2.1.4 : Wed 21 Jan 2004 - 22:10:25 IST