calls getrusage() in a signal handler to find its CPU time.
Apparently there are some kernels and/or thread libraries
where getrusage() does NOT return the total CPU time of
all threads in the process,
so in these cases calling it from the timer thread doesn't work.
This was originally changed because of concerns that
calling getrusage() in a signal handler was dangerous;
we'll see if any problems re-emerge.
The alternative of reading /proc/PID/stats doesn't seem viable;
format may not be standardized.
svn path=/trunk/boinc/; revision=14433
removed references to "graphics thread"
removed HANDLE timer_quit_event
removed enable_heartbeat/disable_heartbeat messages
(not sure what the ideas was, but no longer exists)
removed heartbeat_active flag (use options.check_heartbeat instead)
read heartbeat-channel messages even if heartbeat disabled
(since we use that channel for WSS messages too)
- client: remove ACTIVE_TASK::thread_handle (not used)
svn path=/trunk/boinc/; revision=14323
this limits the length of the generated string
~12 chars even for big/small numbers.
Also reduce buffer size from 8000 to 256;
default thread stack size might not accommodate 8000 + extra.
svn path=/trunk/boinc/; revision=14112
- changed Private Messages interface so that you see
all your messages on one page,
and remove various redundant links
(like the Inbox link on the Inbox page)
- changed links to buttons for moderator functions
svn path=/trunk/boinc/; revision=14019
use strlcat() instead of strcat().
Einstein@home has seen some SEGVs in this function.
I suspect that it's getting 1e304-type values
(why? possible bugs in getrusage-related code, still)
and that these cause long strings that overflow the message buffer.
svn path=/trunk/boinc/; revision=13999
not the worker signal handler.
There's no reason to call it from the signal handler -
it returns the CPU for the entire process, not the calling thread.
And it may be asynch-signal-handler-unsafe.
- API: comment out checks for bad CPU times.
I don't think this is needed now, and in some cases it's wrong
(multi-threaded apps can accumulate CPU faster than real time)
- API, Unix: in boinc_calling_thread_cpu_time(), don't retry getrusage().
- Bossa: switch to better class structure (suggested by Nicolas Alvarez).
Haven't switched to mysqli yet, but will later.
Also various other Bossa fixes
svn path=/trunk/boinc/; revision=13855
- check for infinity/NaN
- check for CPU time decreasing
- check for CPU time increasing faster than real time
... and deal with each of these in a hopefully reasonable way
svn path=/trunk/boinc/; revision=13847
and access to worker_thread_ru.
This was being used in the worker signal handler,
which is bad because pthread_mutex_lock() can allocate memory.
I don't think this matters; at worst we might get
CPU times off by < 1 sec.
svn path=/trunk/boinc/; revision=13844
like source code and text files. I skipped to check most files in html/
and mac_*/ though.
- Added svn:executable to tools/watch_tcp because it has a shebang.
svn path=/trunk/boinc/; revision=13819
at most one regular and one full-screen graphics window can be open,
and a "hide" message kills the full-screen window if one exists,
else a regular window.
Keep track of the PIDs separately for regular and full-screen.
Also, don't send a "hide" ack if we don't do graphics.
svn path=/trunk/boinc/; revision=13697
in a V6 app (and launching/killing the graphics app)
- API: start timer thread even if in standalone mode
(needed to get timer callbacks for V6 graphics)
- API: remove BOINCSetForegroundWindow stuff
- API: call DestroyWindow instead of boinc_exit() in WM_CLOSE.
boinc_exit() is the wrong thing to call - e.g. it tries to delete
the lock file, resulting in a 5-sec delay on exit
svn path=/trunk/boinc/; revision=13679
NOTE: as of this checkin, applications built with the API
code in the trunk are assumed to do V6-type graphics.
If your app doesn't, then you must set
backwards_compatible_graphics to false
(and use boinc_init_graphics_options())
svn path=/trunk/boinc/; revision=13675
(deciding which app to use, implementing blanking interval, etc.)
This logic is all now in the screensaver itself.
- GUI RPC: removed get/set screensaver mode RPCs
- API: added a "backwards_compatible_graphics" flag to BOINC_OPTIONS.
V6 apps should set this.
If set, the runtime library checks for graphics messages
from the client, and launches/kills the graphics app (if any).
The app will then work graphically with pre-V6 clients.
- removed some old files
svn path=/trunk/boinc/; revision=13651
update_versions to add version 6 apps.
It looks for API_VERSION string in main executable,
adds the API version to the app_version XML,
and sets min_core_version to 6 for version 6+ apps
- API: include API_VERSION string
- convert tabs to spaces here and there
- scheduler: parse unused elements in <net_stats>
- ops/show_log.php: if no URL args, just show form (fixes#415)
- client: parse and store api_version (not used yet)
svn path=/trunk/boinc/; revision=13627