(1) apps being suspended would call boinc_finish(nonzero) and
core client would treat this as app failure. Introduce
a new function boinc_exit() and call that instead.
(2) improvements to GUI build with wxWidgets
(3) improved X event handling loop now ensures that X window
is taken away when window killed.
svn path=/trunk/boinc/; revision=5142
couple of weeks to fix a number of bugs and problems in the
X-windows and/or Mac graphics event loop, and with lockfile
handling problems seen on a number of Unix file systems. A
brief summary of the changes is:
lockfile: replace calls to exit() by boinc_finish() + make
boinc_finish() remove the lockfile
graphics-eventloop: some re-structuring and simplification to
make handling of glut-exits/abort-signals more robust. Eric,
if you could test this under Solaris we'd be very grateful.
svn path=/trunk/boinc/; revision=5025
of gcc to try and force them to not complain with -Wall but to always
include this, I decided to take a simpler approach. All these strings
now have global linkage. To prevent namespace conflicts they all
have different names. For the record, the variable extension is a hash made of the first ten characters of the md5sum of the file path, eg:
md5hash=`boinc/api/x_opengl.C | md5sum | cut -c 1-10`
svn path=/trunk/boinc/; revision=4979
generated a SIGARBT. We now catch this signal. In the
graphics thread, this just restarts the graphics init process
(with some sleep(2)ing if needed to prevent a busy fail loop).
If the signal is caught in the main thread, we restore the old
signal handler then raise(SIGABRT).
David, note that when run standalone, killing the graphics
window does NOT kill the process. I think this is fine, but
it doesn't correspond to what the documentation says.
svn path=/trunk/boinc/; revision=4958
Darwin/Unix. It's only needed under Windows. Also warn user if
GLUT libraries missing, and then build only non-graphical client
side code.
svn path=/trunk/boinc/; revision=4954
When glutInit fails it prints a line (~100 chars) to stdout. If it does
this 60 times per hour, that's 6kB/hour. After ten hours it will overflow
the blob for stderr.
svn path=/trunk/boinc/; revision=4953
- In graphics_lib.h, this is for compatibility with pure C
applications.
- In graphics_impl.h, this would be needed EVEN if we were
never building app or library with anything other than C++.
It's because dlsym() can only work if you pass it a non-name
mangled symbol. Please see:
http://www.isotton.com/howtos/C++-dlopen-mini-HOWTO/C++-dlopen-mini-HOWTO.html
for futher edetail.
- Comments added to graphics_lib.C, better error message.
svn path=/trunk/boinc/; revision=4829
it. Please read comments in-line. I think the major
shortcoming is
that most (all?) apps will want to use 'handle' to resolve their
own functions to communicate data from worker to app graphics.
Perhaps we should provide an additional argument to
boinc_init_graphics_lib() for that purpose? At the right point,
after sucessful dlopen(), boinc_init_graphics_lib() will call
that user-supplied function (if not NULL) passing it handle.
On return boinc_init_graphics_lib() will then carry on and start
graphics.
It's fun working on a file that's not in Makefile. No guilt!
svn path=/trunk/boinc/; revision=4816