Commit Graph

16 Commits

Author SHA1 Message Date
David Anderson 68b3fe6b19 - client: fix crashing bug when there's a cycle in the process graph.
I had fixed this in one place but not another.
- client: don't memset(0,) a PROCINFO; use clear() instead


svn path=/trunk/boinc/; revision=24431
2011-10-19 07:49:23 +00:00
David Anderson e279b59913 - Updates Linux notifications to use current libnotify.
- Fix build problems on Mac OS X using autotools
- Consistently use #if HAVE_X for platform checks,
    rather than #ifdef HAVE_X or #if defined(HAVE_X)
- In Unix build, make lots of compiler checks standard
- Fix some compile warnings

From Matt Arsenault.

Note: there are now lots of compile warnings in clientgui/ on Unix,
    mostly in WxWidgets code


svn path=/trunk/boinc/; revision=24303
2011-09-27 19:45:27 +00:00
David Anderson b16f603a8a - client (and API and manager): change the data structure
used for system process info
    Old: vector of PROCINFO.
        Descendants of a process were found by recursively
        iterating through the vector.
        Operations are O(n)
    New: map of (id, PROCINFO),
        and each PROCINFO has a vector of its children.
        Operations are O(log(n))
    Also combined Mac/Win/Linux variants of code that
    was essentially the same.


svn path=/trunk/boinc/; revision=24117
2011-09-02 17:45:29 +00:00
David Anderson a0fd3445fc - wrapper: improve and bullet-proof the way we kill apps.
Win: enumerate all descendants, and kill them all TerminateProcess().
    Unix:
        send the main process a SIGTERM.
        Check once a sec for existence of descendants.
        if none, done
        If any still exist after 10 sec, kill all descendants
- wrapper fix bug in Win env var stuff
- scheduler: check for VBox version 3.2+ in app_plan()
    

svn path=/trunk/boinc/; revision=23085
2011-02-22 23:11:34 +00:00
Bernd Machenschalk a73bbac1dc lib:
- fixed whitespace error in Makefile.mingw                                                                                                                                                  
        - build and install svn_version.h in Makefile.mingw                                                                                                                                         
        - fixed boinc_win.h for MinGW gcc-4                                                                                                                                                         
        - not sure why client_msgs.h was ever included in procinfo_unix.cpp,                                                                                                                      
          but in current code caused a nasty trail of includes breaking the                                                                                                                         
          Linux build, so removed it

svn path=/trunk/boinc/; revision=22561
2010-10-20 11:28:02 +00:00
David Anderson 1f9454c576 - client (unix): don't count low-priority processes towards
non-BOINC CPU time.
    NOTE: when you nice a process to 19,
    its priority in /proc is 39 (at least on Ubuntu and FC11).
    I can't find where this offset (20) is documented,
    so I just hardwired 39.

    TODO: Mac

svn path=/trunk/boinc/; revision=22424
2010-09-29 20:12:41 +00:00
David Anderson 7a7cf4f5e7 - client, Unix: error checking in reading /proc entries.
Avoid garbage values e.g. of working_set_size
- scheduler: message tweaks

svn path=/trunk/boinc/; revision=21591
2010-05-20 17:50:00 +00:00
David Anderson 2d7fdacba8 - client: don't include graphics apps in non-BOINC CPU time (Unix).
svn path=/trunk/boinc/; revision=21133
2010-04-07 16:04:36 +00:00
David Anderson 143d03e318 - client: in computing non-BOINC CPU time,
exclude any process whose executable includes "boinc", case-insensitive.
    Fix problem with BoincTasks.exe

svn path=/trunk/boinc/; revision=20910
2010-03-15 23:28:23 +00:00
David Anderson 768f3bfe0b - client: include CPU usage of client in BOINC total.
Also include manager if its name includes "boinc"
    (can't figure out another way)

svn path=/trunk/boinc/; revision=20566
2010-02-15 01:00:32 +00:00
David Anderson 10f9e11ee6 - lib: created a new file for declaring "replacements"
for functions like strlcpy() etc.
    config.h is included here rather than in str_util.h


svn path=/trunk/boinc/; revision=18437
2009-06-16 20:54:44 +00:00
Eric J. Korpela 8f3abcc835 - Added checks for net/*.h, arpa/*.h, netinet/*.h and code to figure out
which of those files to include
    - Modified MAC address check to work on some non-Linux unixes.
      (mac_address.cpp)
    - Added suggested change to "already attached to project" checking.
      (ProjectInfoPage.cpp)
    - changed includes of standard c header files to their c++ equivalents
      (i.e. replaced <stdio.h> with <cstdio>) for namespace protection.
    - replaced "using namespace std;" with more explicit "using std::function" in
      several files.
    - Fixed bug in checking whether the os is OS/2 and added conditional OS_OS2
      to the build environment. (boinc_platform.m4,configure.ac)
    - Changed build environment to not use -nostandardlibs unless we are using
      G++ and static linkage is specified. (configure.ac)
    - Added makefiles and package building files for solaris CSW package manager.
    - Fixed bug with attempting to find login name using logname. (configure.ac)
    - Added ifdef HAVE_* protection around some include files commonly found in
      sys.
    - Added support for unified binary for x86_64/i686-pc-solaris.
      (cs_platforms.cpp)
    - generate_host_cpid() now uses MAC address on non-linux unix.
      (hostinfo_network.cpp)
    - Macro BOINC_SET_COMPILE_FLAGS now doesn't check gcc only flags on non-gcc
      compilers. (boinc_set_compile_flags.m4)
    - Library compiles no longer depend upon the library extension or require
      the library to be prefixed with lib.
    - More fixes for fcgi builds.
    - Added declaration of "struct ether_addr" and ether_ntoa().  Have not yet
      implemented ether_ntoa() for machines that don't have it, or where it is
      buggy.  (unix_util.h)
    - Added FCGI::perror() which calls FCGI_perror(). (boinc_fcgi.{h,cpp})
    - Fixed library Makefiles so that all required headers get installed.


svn path=/trunk/boinc/; revision=17388
2009-02-26 00:23:23 +00:00
David Anderson 9dd952302e - client: /proc/N/stat has () around the command name. Remove these.
svn path=/trunk/boinc/; revision=16354
2008-10-29 16:05:26 +00:00
David Anderson f0e0e8f977 - client: add "exclusive app" feature. If you put
<exclusive_app>foo.exe</exclusive_app>
    in your cc_config.xml, BOINC will suspend computing
    whenever foo.exe is running (e.g., a game).

    Eventually we might want to put the interface in preferences
    instead of cc_config.xml

svn path=/trunk/boinc/; revision=16087
2008-09-29 16:47:10 +00:00
David Anderson ab57184a3a - prepare for "don't run while playing game" feature
svn path=/trunk/boinc/; revision=16084
2008-09-29 01:55:58 +00:00
David Anderson 98cfb8d3b0 - rename .C files to .cpp so that Doxygen will work
svn path=/trunk/boinc/; revision=16069
2008-09-26 18:20:24 +00:00