Commit Graph

1136 Commits

Author SHA1 Message Date
Charlie Fenton 9cebe4bb35 API: Remove apparently unnecessary include of carbon.h
svn path=/trunk/boinc/; revision=25262
2012-02-15 01:33:51 +00:00
Charlie Fenton fd999fc652 OpenCL: workaround for GPUs reported by CUDA but not by Mac OpenCL
svn path=/trunk/boinc/; revision=25109
2012-01-20 13:30:47 +00:00
David Anderson 81b29b0cc9 - API: fix queueing problem for graphics-related messages
(web graphics URL and remote desktop addr)
- GUI RPC and API:
    change "remote_desktop_connection" to "remote_desktop_addr" everywhere.
    It's an address, not a connection.
- vboxwrapper: log message cleanup


svn path=/trunk/boinc/; revision=25044
2012-01-13 19:00:16 +00:00
Rom Walton ce4650ecbb - VBOX: Cleanup a few messages stating port numbers in the stderr spew.
- VBOX: Send configuration settings in one message instead of piece meal.
    
    api/
        boinc_api.cpp, .h
    samples/vboxwrapper
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=25041
2012-01-13 15:21:00 +00:00
Rom Walton 2c54c9735a - VBOX: Report the remote desktop connection information to the
core client.  Next commit will create an extra "VM Console"
        button in the manager when detected.  Volunteers will just have
        to click the button to see what is going on with the VM.

    api/
        boinc_api.cpp, .h
    samples/vboxwrapper
        vbox.cpp, .h
        vboxwrapper.cpp, .h

svn path=/trunk/boinc/; revision=25035
2012-01-12 20:57:23 +00:00
David Anderson 8d1af7892f - API: respect direct_process_action even if multi_process is set
svn path=/trunk/boinc/; revision=25031
2012-01-12 00:27:21 +00:00
David Anderson 17e2cedefe - API/client/manager:
allow applications to supply a "web graphics URL",
    in which case the manager's "Show Graphics" button
    opens a browser at that URL.
    This typically would used for applications that
    implement a web server that serves pages showing
    job information in HTML.
- vboxwrapper: if <pf_guest_port> is specified in the config file,
    set up port forwarding to that port
    and use the above API call with URL "http://localhost:port"


svn path=/trunk/boinc/; revision=24898
2011-12-26 03:10:42 +00:00
David Anderson dbdcfc9a07 - OpenCL API: check return value from clGetDeviceIDs()
svn path=/trunk/boinc/; revision=24566
2011-11-09 21:24:47 +00:00
David Anderson 083040ba63 - OpenCL API: fix logic error
svn path=/trunk/boinc/; revision=24565
2011-11-09 21:04:01 +00:00
Rom Walton 7c88969aa9 - API: Remove exception trapping stuff from the
boinc_get_opencl_ids.
        
    api/
        boinc_opencl.cpp

svn path=/trunk/boinc/; revision=24552
2011-11-08 15:12:44 +00:00
Charlie Fenton b10b199099 api: Restore list checkin of 31 October 2011
svn path=/trunk/boinc/; revision=24515
2011-11-03 08:28:55 +00:00
David Anderson 010b11406b - API: fix bug in boinc_get_opencl_ids()
- add simulator for distributed storage (not finished)


svn path=/trunk/boinc/; revision=24511
2011-11-03 03:29:07 +00:00
Rom Walton 687195e7f0 Quick Updates
svn path=/trunk/boinc/; revision=24510
2011-11-03 02:35:04 +00:00
David Anderson 7b28215032 - client: reimplement the round-robin simulator to
reduce its runtime from O(N^2) to O(N),
    where N is the number of runnable jobs
    (which can be in the thousands).
    This will make the client emulator run a lot faster,
    and will reduce the client CPU overhead a bit.
- API: change boinc_get_opencl_ids() so that it returns
    a BOINC error code (< -100) if the app_init.xml is
    missing or bad (i.e. we're running standalone),
    and an OpenCL error code (> -100) if an OpenCL call failed.


svn path=/trunk/boinc/; revision=24469
2011-10-24 17:53:09 +00:00
David Anderson b95ac02c5b - client: change the way project priorities are computed,
so that they do what they're supposed to
    (i.e. enforce resource shares)
- client: change log flag <debt_debug> to <priority_debug>
- client simulator: update REC even with large delta-t.
- client simulator: handle "no new work" apps correctly


svn path=/trunk/boinc/; revision=24429
2011-10-19 06:37:03 +00:00
Charlie Fenton a80d483e72 Mac: Update Mac build scripts, XCode project and source files to allow automated builds under OS 10.7 Lion and XCode 4.2
svn path=/trunk/boinc/; revision=24416
2011-10-18 13:53:37 +00:00
David Anderson 7e41a84c16 - add boinc_opencl.h to set of installed headers
- emulator tweaks

svn path=/trunk/boinc/; revision=24407
2011-10-17 17:02:05 +00:00
David Anderson 1f2accb000 - API: don't crash if send trickle msg running standalone.
From Christian Ries.


svn path=/trunk/boinc/; revision=24357
2011-10-08 16:33:31 +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 d8f20bceea - vboxwrapper: report network usage to the client
- client: include the above in enforcing network quota preferences


svn path=/trunk/boinc/; revision=24227
2011-09-16 19:16:12 +00:00
David Anderson ec33994fe7 - API; fix the above fix
svn path=/trunk/boinc/; revision=24160
2011-09-12 03:48:16 +00:00
David Anderson 228f626a01 - API: change boinc_get_opencl_ids() to use APP_INIT_DATA
instead of cmdline


svn path=/trunk/boinc/; revision=24159
2011-09-11 22:22:55 +00:00
David Anderson 4e946854c1 - client/API/vboxwrapper:
add a mechanism so that apps can report sub-processes
    that are not descendants (e.g., virtual machines)
    These processes are then counted as part of the app,
    not as "non-BOINC CPU time".
    This fixes a bug where processing was incorrectly suspended
    because CPU usage by VM apps exceeded the "CPU usage limit" pref.

    Implementation:
    - the PIDs of the processes in question
        are passed from app to client via shared-memory,
        in the app_status channel.
        A new variant of boinc_report_app_status() supports this.
    - the VBox wrapper queries the PID of the VM,
        and reports it in this way.
    - procinfo_app() includes a new argument: a list of PIDs
        that are part of the app, although not ancestrally
        related to the main process.
    - in the client, ACTIVE_TASK now includes a vector "other_pids".
        If this is nonempty, it's passed to procinfo_app().


svn path=/trunk/boinc/; revision=24123
2011-09-02 20:47:05 +00:00
David Anderson 8ad9d7d98b - more code shuffling:
proc_control: controlling processes
    procinfo: enumerating and querying processes
    run_app_windows: launching apps as other users on Win


svn path=/trunk/boinc/; revision=24120
2011-09-02 18:23:13 +00:00
David Anderson c529c3c50d - server: rename process_wu_template() to process_input_template(),
and move it to its own file


svn path=/trunk/boinc/; revision=24107
2011-09-01 19:58:27 +00:00
Charlie Fenton 0e5e4da926 API: More fixes to boinc_get_opencl_ids()
svn path=/trunk/boinc/; revision=24103
2011-09-01 08:31:55 +00:00
Charlie Fenton a02c37cbce API: Fix compile errors and warnings, add documentation
svn path=/trunk/boinc/; revision=24101
2011-09-01 00:06:34 +00:00
David Anderson f1c201ab40 - API: boinc_get_opencl_ids() doesn't need to link
the OpenCL library at runtime.
    It's used only in OpenCL applications,
    which already include the library.


svn path=/trunk/boinc/; revision=24097
2011-08-31 17:36:16 +00:00
David Anderson c0f977b19c - client: fix bugs related to white space around code signing keys
- win compile fixes

svn path=/trunk/boinc/; revision=24095
2011-08-31 16:36:17 +00:00
David Anderson 9bbbb3ea38 - boinc_get_opencl_ids():
- change signature to return int error code
    - no function overloading


svn path=/trunk/boinc/; revision=24094
2011-08-31 16:12:14 +00:00
David Anderson f1040e87ec - move boinc_get_opencl_ids() from lib/ to api/.
lib/ is for code that's used by >1 part of BOINC


svn path=/trunk/boinc/; revision=24093
2011-08-31 15:54:41 +00:00
David Anderson 69cbabe798 - fix compile warnings
svn path=/trunk/boinc/; revision=23780
2011-06-26 00:10:19 +00:00
David Anderson 94e8c48220 - client: change --detach_phase_two (??) to --detach_console
- eliminate compiler warnings (e.g. shadowed vars)
    in various places, mostly in client


svn path=/trunk/boinc/; revision=23710
2011-06-12 20:58:43 +00:00
David Anderson 0eb289df33 - API: forgot to fix boinc_api.h
svn path=/trunk/boinc/; revision=23699
2011-06-09 03:11:09 +00:00
David Anderson 7b5c142650 - API: undo the above API checkin, and provide a cleaner and
documented way of doing the same thing; see
    http://boinc.berkeley.edu/trac/wiki/AppCoprocessor


svn path=/trunk/boinc/; revision=23649
2011-06-07 05:16:12 +00:00
Eric J. Korpela e9ecb9c04a Safe exit checking for CUDA applications under windows. In application you
could use the following for safe exit checking. 

#ifdef _WIN32
//Jason: Safe exit check macro to play nicer with Cuda & MS-CRT
 #ifdef USE_CUDA 
  #define SAFE_EXIT_CHECK  do { \
   if (worker_thread_exit_request) { \
      fprintf(stderr,"-> Worker received exit request, syncing Cuda...");
cudaThreadSynchronize(); fprintf(stderr,"Done.\n"); \
      fprintf(stderr,"  Worker Freeing Cuda data..."); cudaAcc_free();
fprintf(stderr,"Done.\n"); \
      fprintf(stderr,"  Worker Acknowledging exit request, spinning->\n");
worker_thread_exit_ack = true; \
      while (1) Sleep(10); \
   } \
  } while (0);
 #else
  #define SAFE_EXIT_CHECK  do { \
   if (worker_thread_exit_request) { \
      fprintf(stderr,"  Worker Acknowledging exit request, spinning-> ");
worker_thread_exit_ack = true; \
      while (1) Sleep(10); \
   } \
  } while (0);
 #endif
#else  // Linux or other probably have their own safe exit handling, defined as
blank, do nothing
 #define SAFE_EXIT_CHECK
#endif
 
and install at the top of the cffft loop, and more locations if desired:
  SAFE_EXIT_CHECK;

I'd like to implement these as BOINC API functions, but have not yet done so.



svn path=/trunk/boinc/; revision=23646
2011-06-07 01:46:14 +00:00
David Anderson 93735f7172 - client: XML-escape the contents of stderr files;
otherwise non-ASCII characters in client_state.xml
    make it invalid XML
- client: fix (I think) to scheduling logic.
    a job is preemptable if it's finished its time slice and
    Old: has checkpointed in last 10 sec
    New: has checkpointed since the end of the time slice


svn path=/trunk/boinc/; revision=23551
2011-05-17 00:31:41 +00:00
David Anderson bddd0d45db Win compile fixes
svn path=/trunk/boinc/; revision=23370
2011-04-14 22:48:04 +00:00
David Anderson 7cb3400459 - API: add support for multi-process apps,
i.e. those that create subprocesses.
    Previously, the client's job control options (suspend/resume/quit)
    would not work for subprocesses.
    Multiprocess apps must initialize with something like:
        BOINC_OPTIONS options;
        boinc_options_defaults(options);
        options.multi_process = true;
        boinc_init_options(&options);
    Note: an application can be both multi-thread and multi-process.
    In this case set options.multi_thread as well.
- wrapper: add support for multi-process apps.
    Previously, suspend/resume operations did not work for subprocesses.
    If a task is multi-process, you must include
        <multi_process>1</multi_process>
    in its descriptor.


svn path=/trunk/boinc/; revision=23369
2011-04-14 22:25:38 +00:00
Rom Walton 3f8cc63c8f - API: Flush buffers before terminating.
- SCR: Flush buffers before terminating.
    
    api/
        boinc_api.cpp
    clientscr/
        screensaver_win.cpp

svn path=/trunk/boinc/; revision=23286
2011-03-28 17:53:43 +00:00
David Anderson 4a4ee2a013 - API: compile fixes for MinGW. Fixes #955. from Matt Arsenault
svn path=/trunk/boinc/; revision=23282
2011-03-26 02:19:21 +00:00
David Anderson d6c99b43d0 - define MAXPATHLEN, if needed, in filesys.h
- fix typo in a GUI RPC handler


svn path=/trunk/boinc/; revision=23250
2011-03-24 09:32:02 +00:00
David Anderson 02e7aa6678 - client and API: pass "network suspended" flag from client to app;
make it available as part of BOINC_STATUS


svn path=/trunk/boinc/; revision=23243
2011-03-20 07:04:32 +00:00
David Anderson c168971770 - API: get rid of BOINC_OPTIONS::backwards_compatible_graphics.
Not necessary.
- wrapper: add optional <append_cmdline_args/> element to
    task descriptor.
    If set, pass the wrapper's cmdline args to that task.
    NOTE: previously they were always passed.
    If you want this behavior, you now must set this.


svn path=/trunk/boinc/; revision=23232
2011-03-14 17:28:52 +00:00
David Anderson 93902c1475 - API: small tweak that should help narrow down the occasional crashes
in fprintf() and boinc_msg_prefix() seen by E@h

svn path=/trunk/boinc/; revision=22844
2010-12-17 19:09:03 +00:00
David Anderson 0a85852465 svn path=/trunk/boinc/; revision=22836 2010-12-08 23:07:07 +00:00
David Anderson 4ba0fa29ec - API: add support from Truetype fonts (from Carl Christensen)
svn path=/trunk/boinc/; revision=22835
2010-12-08 23:06:07 +00:00
Bernd Machenschalk 56eb3cdf7f API: MinGWs runtime API has neither localtime_r nor localtime_s,
but it should be safe to use localtime here

svn path=/trunk/boinc/; revision=22825
2010-12-07 14:23:37 +00:00
David Anderson 2855bd3840 - client: fix typo that broke communication with account managers
- API: compile fix for Win

svn path=/trunk/boinc/; revision=22804
2010-12-02 19:38:25 +00:00
David Anderson 556e319ca1 - API: use localtime_r() instead of localtime()
svn path=/trunk/boinc/; revision=22784
2010-12-01 18:04:18 +00:00
Bernd Machenschalk 0220ab3319 - api: check return values of functions used in boinc_msg_prefix(),
return a (valid) empty string if an error occurred

svn path=/trunk/boinc/; revision=22781
2010-12-01 15:25:07 +00:00
Charlie Fenton ba7b2d6898 Remove BOINC_RCSID tags from more source files
svn path=/trunk/boinc/; revision=22739
2010-11-23 11:25:36 +00:00
David Anderson 4edfe2ec28 - client: small initial checkin for new scheduling system.
Keep track of per-project recent estimated credit

svn path=/trunk/boinc/; revision=22608
2010-10-29 23:41:34 +00:00
David Anderson d48e377e8a Win compile fix
svn path=/trunk/boinc/; revision=22367
2010-09-16 03:53:27 +00:00
David Anderson 1637c19e08 - API and sample apps: pass buf length arg to boinc_msg_prefix()
and use snprintf() to avoid overrun.
    Can't see why this could ever happen.
    Attempt to fix crash in E@h apps.

svn path=/trunk/boinc/; revision=22363
2010-09-15 23:03:30 +00:00
David Anderson 3dffe0a8bc - API: remove deprected stuff related to:
1) old-style apps with graphics in main program.
        No one should be using these anymore.
    2) writing init_data.xml in boinc_finish().
        This was used by deprecated "compound app" scheme
- scheduler: if request reports results that were previously reported,
    that's evidence that the previous reply was not received by client.
    It may have contained results.
    So set a "resend lost results" flag.

svn path=/trunk/boinc/; revision=22203
2010-08-11 22:02:41 +00:00
David Anderson ede7c8cea9 - web: right-align bbcode images
- API: warning fix

svn path=/trunk/boinc/; revision=22160
2010-08-07 03:33:25 +00:00
David Anderson 60c296338c - API: compile fix
svn path=/trunk/boinc/; revision=21801
2010-06-24 05:11:34 +00:00
David Anderson d5e035456d compile fixes
svn path=/trunk/boinc/; revision=21786
2010-06-21 23:36:01 +00:00
David Anderson 392f02f8b8 - API: add BOINC copyright notice to graphics2_win.cpp.
This file originally used code from the following tutorial,
    which shows how to open a window using GLUT:
    http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=01
    The code has now been completely rewritten;
    in particular, it doesn't use GLUT anymore.
- scheduler: change default limit on #CPUs from 16 to 64

svn path=/trunk/boinc/; revision=21784
2010-06-21 21:14:34 +00:00
David Anderson b9cdeb73fa - sample apps: compile fixes
svn path=/trunk/boinc/; revision=21774
2010-06-18 20:02:35 +00:00
David Anderson fcd3eb4fda - API: make boinc_msg_prefix() thread-safe
svn path=/trunk/boinc/; revision=21765
2010-06-17 17:41:27 +00:00
David Anderson 2eef482a12 - API: fix bug that caused parallel apps to get compute error
when they were suspended without "leave in memory" pref
- user web: if in-progress result has credit, show it; fixes #998

svn path=/trunk/boinc/; revision=21748
2010-06-14 21:24:07 +00:00
David Anderson 50724b0ed9 - API: compile fixes for MinGW
svn path=/trunk/boinc/; revision=21522
2010-05-14 16:22:57 +00:00
Rom Walton e14e1cad34 - Remove BOINC_RCSID tags from source files, we are doing branching and tagging
properly.
        
    <Various Files>

svn path=/trunk/boinc/; revision=20873
2010-03-12 16:51:57 +00:00
Bernd Machenschalk 99d7de0508 fix to compile boinc_api.cpp on Windows
looks like copy/paste error, retval is not defined there
    David, please review & change if necessary

svn path=/trunk/boinc/; revision=20802
2010-03-05 14:14:36 +00:00
David Anderson e8f8c7bde2 - API: Win: resume other threads before exiting from timer thread.
Attempt to fix E@h bug.
- client: fix messages: asking for X instances doesn't mean
    that X instances are idle

svn path=/trunk/boinc/; revision=20772
2010-03-02 18:58:34 +00:00
David Anderson a60e21ce89 - API: in txfRenderString, replace non-ASCII chars with ?.
Otherwise it calls abort()!

svn path=/trunk/boinc/; revision=20648
2010-02-18 22:36:07 +00:00
David Anderson 7d229ccf4b - graphics API: if font missing, find one that isn't (from Kevin)
svn path=/trunk/boinc/; revision=20350
2010-02-01 19:18:23 +00:00
David Anderson e8f230b4a3 - API: fix crashing bug. There was a leftover memset(aid, 0)
in boinc_parse_init_data_file()
- client sim: make it work again

svn path=/trunk/boinc/; revision=20199
2010-01-19 18:43:17 +00:00
David Anderson f48de8625a svn path=/trunk/boinc/; revision=20184 2010-01-16 23:52:05 +00:00
David Anderson 0255297345 - API: if app can't acquire lock file, tell the client not
to restart app for 10 minutes.
    Hopefully what will happen is:
    - another instance of app is running in slot dir
        (shouldn't happen, but sometimes does)
    - that app will eventually finish, and will write
        a checkpoint file saying so.
        It will call boinc_finish(0), but the client won't notice
        that it has exited.
    - the next time the client starts the app,
        it will acquire lock, see that it's done,
        and call boinc_finish(0).
        This time the client will notice,
        and the job will be reported as correct.
    The downside to all this is that the client won't know
    that the CPU is in use, and will schedule NCPUS jobs.

svn path=/trunk/boinc/; revision=20128
2010-01-11 20:52:55 +00:00
David Anderson e50bca6ca5 svn path=/trunk/boinc/; revision=20057 2010-01-01 05:53:38 +00:00
David Anderson da1476f47d compile fixes
svn path=/trunk/boinc/; revision=20056
2010-01-01 05:12:03 +00:00
David Anderson d5a8f6f1e1 - API: add boinc_init_parallel().
This is like boinc_init() but for multithread apps.
    Unlike boinc_init(), it suspends/resumes all threads in the app,
    not just one.
    In Unix, this is done by forking,
    and having the parent process handle suspend/resume messages
    and suspend/resume the child using signals
    On Win, there's some nasty code that enumerates all
    threads in the whole system, and suspends/resumes
    those in a particular process.


svn path=/trunk/boinc/; revision=20054
2010-01-01 02:50:56 +00:00
David Anderson a3f80676b7 - API and client: add an API function boinc_temporary_exit(dt).
This exits the app with status zero and no finish file,
    so the client will restart it.
    It creates a file "temporary_exit" containing dt.
    The (new) client reads this file and will postpone
    scheduling the job again for dt seconds.
    Old clients will treat it as a premature exit,
    and potentially try to reschedule the job immediately.

    This function is intended for GPU applications that
    fail to allocate GPU RAM,
    presumably because a non-GPU application has it allocated.
    We don't want the job to fail,
    and we want to wait for a while before trying the allocation again.

svn path=/trunk/boinc/; revision=19879
2009-12-13 05:16:40 +00:00
Bernd Machenschalk cdcbfc29fd api: updates for building Win32 libs & API with MinGW gcc
added Makefile.mingw used for Einstein@home in lib/ as an
_alternative_ to api/Makefile.mingw

svn path=/trunk/boinc/; revision=19583
2009-11-16 13:13:42 +00:00
Rom Walton 675421d382 - WIN: Remove unused references to glaux.h and glaux.lib
api/
        boinc_gl.h
    win_build/
        *.vcproj

svn path=/trunk/boinc/; revision=18996
2009-09-02 23:00:10 +00:00
David Anderson 563a55f37e - client/libs/samples: remove "#define read _read" etc. from boinc_win.h
These cause problems when "read" is a member name, etc.
		Do these #defines, conditioned on _MSC_VER,
		in the files that actually need them.
	- don't include boinc_win.h from parse.h.
		principle of minimal inclusion

svn path=/trunk/boinc/; revision=18902
2009-08-22 17:00:19 +00:00
David Anderson 1dba786d7b - API: add boinc_elapsed_time() to get elapsed time since start of episode;
add APP_INIT_DATA::starting_elapsed_time to get
    elapsed time from previous episodes

svn path=/trunk/boinc/; revision=18535
2009-07-01 17:35:56 +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
David Anderson 18b5362c1d - Change Makefiles to use "$(LN) foo ." instead of "ln foo"
svn path=/trunk/boinc/; revision=18003
2009-05-05 09:16:57 +00:00
David Anderson fba2e5ee3d - Changes to get the client to build on IRIX:
don't use the variable name "sgi";
    include <xxx.h> instead of <cxxx>; the latter just adds
    overloaded functions that we avoid.

svn path=/trunk/boinc/; revision=17954
2009-04-30 21:48:20 +00:00
David Anderson e628dba3ed - graphics API: full-on 3D rotation of text
svn path=/trunk/boinc/; revision=17777
2009-04-10 05:34:24 +00:00
David Anderson 5800130fae - graphics API: add rotation arg to txf_render_string()
(from Carl C.)

svn path=/trunk/boinc/; revision=17774
2009-04-09 23:10:28 +00:00
Eric J. Korpela 3c58c38958 - API: Added new function boinc_set_credit_claim() for use by projects that
want to grant approximately fixed credits, but don't want to express them in 
    terms of FPOPS and IOPS.  This API just calls boinc_ops_cumulative(N*8.64000e+11,0).
    CPU intensive projects that use this API should still use the
    tools/calculate_credit_multiplier script in order to adjust their credit
    claims as processing times vary.


svn path=/trunk/boinc/; revision=17743
2009-04-08 00:50:39 +00:00
David Anderson 837d3fc0a1 - get_project_config.php: include plan classes in platform list;
i.e., list both win/x86 and win/x86 + NVIDIA.
    This will allow the manager to show which projects can
    use the hosts's coprocessors,
    and also graying out projects that require an absent coproc.
- fix compile warnings

svn path=/trunk/boinc/; revision=17735
2009-04-03 21:55:26 +00:00
David Anderson 640ba6dffa compile fix
svn path=/trunk/boinc/; revision=17689
2009-03-27 23:47:39 +00:00
David Anderson 68e2530b3a - API: add function boinc_msg_prefix() that returns
time of day and process ID.
    This should prefix all messages written to stderr
    by applications or by the runtime system.

svn path=/trunk/boinc/; revision=17687
2009-03-27 23:42:47 +00:00
David Anderson c1dce6425e - small code shuffle
- fix manager build on unix

svn path=/trunk/boinc/; revision=17650
2009-03-24 17:18:09 +00:00
David Anderson ae90eb4865 - API: more lockfile messages
svn path=/trunk/boinc/; revision=17647
2009-03-23 17:26:20 +00:00
David Anderson 6c4cc20aa1 - API: don't try to unlock lockfile if we failed to lock it
- API: more detailed message if failed to lock

svn path=/trunk/boinc/; revision=17645
2009-03-23 17:00:34 +00:00
David Anderson 5a5b386313 - client: garbage collect after scheduler RPC;
if project sent some irrelevant FILE_INFOs,
		this will avoid starting transfers for them.

svn path=/trunk/boinc/; revision=17644
2009-03-23 01:33:17 +00:00
David Anderson eb35639c97 - API: add some #ifdef'd debug messages
svn path=/trunk/boinc/; revision=17642
2009-03-20 23:02:31 +00:00
David Anderson 2a4daee8cf - API (win): TerminateProcess() apparently can return in some cases,
causing process to go into infinite "no heartbeat" loop.
    Try sleeping for 1 sec, then calling DebugBreak()


svn path=/trunk/boinc/; revision=17640
2009-03-20 21:05:26 +00:00
David Anderson 35a09b01ea svn path=/trunk/boinc/; revision=17406 2009-02-26 23:38:02 +00:00
David Anderson 6a8e754f62 - screensaver: show correct info if CPU throttling;
show correct window title;
		show "no projects" message.

svn path=/trunk/boinc/; revision=17405
2009-02-26 23:32:29 +00:00
David Anderson 019ab4cdfc - API: file descriptor leak in obscure case.
fixes #103


svn path=/trunk/boinc/; revision=17391
2009-02-26 01:11:37 +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 b568b7dada - screensaver
svn path=/trunk/boinc/; revision=17302
2009-02-19 00:29:12 +00:00
David Anderson 1fc3722e71 - client: add SCHEDULER_OP::rpc_failed();
this gets called when the op fails, either at initialization or later on;
        it clears the project's sched_rpc_pending flag if needed.
        This fixes a bug that caused user-requested RPCs to retry every 10 seconds
        when the network is down.
    - client: if debt-adjust period is too long, reset accounting.
        Otherwise we'll get this infinitely.
    - API: all optional alpha argument to TEXTURE_DESC::draw()

svn path=/trunk/boinc/; revision=17195
2009-02-10 19:30:59 +00:00
David Anderson 3ad73d70ba - client: redefine "overworked" as
debt < -1.5 * work_buf * cpu_sched_period
- web: on team page, link to cross-project team stats sites

svn path=/trunk/boinc/; revision=17152
2009-02-05 19:40:01 +00:00
David Anderson 7d1038f940 - API: possible compile fix for OS/2
svn path=/trunk/boinc/; revision=17002
2009-01-23 20:30:34 +00:00
Eric J. Korpela 4e60ef3003 - STILL WORK TO BE DONE TO GET locale STUFF INSTALLED PROPERLY!!!
- Update to libtool 1.5.24
- build environment:  Major automake changes that I've been warning about
  for some time.
- Now uses libtool to build libraries.
- Builds separate boinc_fcgi and sched_fcgi libraries for use with 
  FCGI server components.
- New macro "BOINC_CHECK_LIB_WITH" that executes a "AC_CHECK_LIB" on
  a library only if --with-libname[=DIR] is specified on the configure
  command line.  This is to allow inclusion of libraries when the 
  ssl, gtk, wxWidgets, or other configuration is incorrect for static
  libraries.
- Added a lot of "--with-*" for some libraries that might be required for
  static builds.
- The sea directory has been moved to packages/generic.  Changes to sea
  and the associated scripts might be required to better make use of the
  staging mechanism and shared libraries.
- Fixed includes of boinc_fcgi.h in many files.
- Fixed places where FCGI_FILE needs to be used implicitly.
- Fixed missing define of _SC_PAGESIZE on hosts that define only
  _SC_PAGE_SIZE.
- Moved build of boinc_cmd (and source file) from lib to client



svn path=/trunk/boinc/; revision=16904
2009-01-13 23:06:02 +00:00
David Anderson 312ffba708 - API: remove BOINC_OPTIONS::worker_thread_stack_size
- web: check whether to show profile in separate function
    from displaying profile; eliminate double headers
- scheduler: finish purge of redundant arguments

svn path=/trunk/boinc/; revision=16726
2008-12-19 18:14:02 +00:00
David Anderson e7270c7f96 - API: add "normal_thread_priority" to BOINC_OPTIONS.
If set, the worker thread runs at normal priority on Win.
    May be useful for CUDA apps.

svn path=/trunk/boinc/; revision=16705
2008-12-17 00:49:50 +00:00
David Anderson a3b6ddf6ff - API: free project prefs before parsing init file
svn path=/trunk/boinc/; revision=16479
2008-11-11 23:39:00 +00:00
David Anderson ae826ef2eb - API: remove debugging printf from trickly down code
- API: use non-verbose option to zip
- scheduler: if multiple_client_per_host is set,
    don't mark results as over if get repeat CPID

svn path=/trunk/boinc/; revision=16445
2008-11-07 04:13:08 +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
David Anderson f17a800807 - API: in boinc_exit(), release the lockfile only if
we're the main program (otherwise we didn't lock it in
    the first place, and a crash results).  From Artyom Sharov.
- scheduler: add support for the GCL simulator,
    which uses special versions of backend programs
    that use virtual time,
    and that wait for signals instead of sleep()ing.

    To compile:
        make clean
        configure CXXFLAGS="-DGCL_SIMULATOR"
        make

svn path=/trunk/boinc/; revision=16038
2008-09-22 20:33:59 +00:00
Rom Walton b6b14154fe Rom 13 Aug 2008
- SAMPLES: Add all the samples to the BOINC solution and delete the
        old solution.
    - LIB: Clean up a bunch of warnings.
    
    api/
        texfont.C
    lib/
        crypt.C
    lib/
        filesys.C
    samples/wrapper/
        wrapper.C
    win_build/
        boinc.sln
        glut.vcproj
        image_libs.vcproj
        jpeglib.vcproj
        libboinc_staticcrt.vcproj
        libboincapi.vcproj
        libboincapi_staticcrt.vcproj
        libgraphics2.vcproj
        multi_thread.vcproj
        sleeper.vcproj
        uc2.vcproj
        uc2_graphics.vcproj
        upper_case.vcproj
        worker.vcproj
        wrapper.vcproj

svn path=/trunk/boinc/; revision=15819
2008-08-13 17:26:26 +00:00
David Anderson cd4cf976ea - API (Windows): call mouse-handling functions with
coords relative to window, not screen


svn path=/trunk/boinc/; revision=15764
2008-08-06 20:44:26 +00:00
David Anderson 4f66bb4c95 - added copyright and license info to .C, .cpp, .h files
- scheduler: fix bug in adaptive replication:
    if send an unreplicated job to untrusted host,
    set both wu.target_nresults and wu.min_quorum to app.target_nresults.

svn path=/trunk/boinc/; revision=15762
2008-08-06 18:36:30 +00:00
David Anderson be8638f095 svn path=/trunk/boinc/; revision=15694 2008-07-28 02:13:35 +00:00
David Anderson 796fdd51d9 - API: small additions to graphics stderr messages
svn path=/trunk/boinc/; revision=15693
2008-07-28 02:09:44 +00:00
David Anderson aaaa00ee44 - API: read heartbeat messages only if options.check_heartbest is set.
Otherwise, in compound apps we'll have both monitor and worker
    reading the messages; this is a race condition
    and will lead to spurious "no heartbeat" exits.

svn path=/trunk/boinc/; revision=15548
2008-07-03 19:40:49 +00:00
David Anderson 16b1305db7 - server code: at some point I made a global var "SCHED_CONFIG config",
mostly so that the parse function could assume
    that everything was initially zero.
    However, various back-end functions pass around SCHED_CONFIG&
    as an argument (also named "config").
    This creates a shadow, which is always bad.
    Worse is the possibility that some projects have back-end programs
    that have a SCHED_CONFIG variable that's automatic,
    and therefore isn't zero initially,
    and therefore isn't parsing correctly.

    To fix this, I changed the 2 vectors in SCHED_CONFIG into pointers,
    and have the parse routine zero the structure.
    I was tempted to remove the SCHED_CONFIG& args to back-end functions,
    but this would have broken some projects' code.
    I did, however, change the name from config to config_loc
    to avoid shadowing.

    Also fixed various other compiler warnings.

svn path=/trunk/boinc/; revision=15541
2008-07-02 17:24:53 +00:00
David Anderson 6e731f0b7a - API, Unix: when boinc_finish(x) is called, exit with code x
even if signals happen in the atexit() handling
- API: don't print XML parse warnings for init_data.xml file

svn path=/trunk/boinc/; revision=15454
2008-06-23 19:51:07 +00:00
David Anderson 8a99ca794a - API: compile fix
svn path=/trunk/boinc/; revision=15447
2008-06-23 15:36:51 +00:00
David Anderson 98875fe047 Changed deliberate segfault into an assert+return so segfault won't occur
in release code.


svn path=/trunk/boinc/; revision=15432
2008-06-19 01:13:51 +00:00
David Anderson 796a8ef835 - change EXIT_ABORTED_VIA_GUI to EXIT_ABORTED_BY_CLIENT
- change ERR_CHILD_FAILED TO EXIT_CHILD_FAILED
    (it's an exit code, not a function error code)
- client: reduce severity of benchmark error
- scheduler: compile fix

svn path=/trunk/boinc/; revision=15423
2008-06-18 16:43:05 +00:00
David Anderson 3eaff2b345 - API/runtime system: remove "fraction done update period" stuff.
This was always 1 second, which is fine.


svn path=/trunk/boinc/; revision=15394
2008-06-12 18:35:19 +00:00
David Anderson 4387e4491b - Fix emacs mode line in Makefile.am's
svn path=/trunk/boinc/; revision=15375
2008-06-08 22:18:52 +00:00
Eric J. Korpela 1f2d65bccb - Makefiles:
added client/scripts to default client build
    removed sea from the default clientgui build
    added locale/client to the default clientgui build
    moved installed headers from $(includedir) to $(pkgincludedir) which
       is $(includedir)/boinc by default.
    removed redefinitions of $(includedir) from Makefiles.
- configure:
    added locale/client/Makefile to AC_CONFIG_FILES


svn path=/trunk/boinc/; revision=15300
2008-05-28 01:38:39 +00:00
David Anderson 5a9d11898b - API: compile fix
svn path=/trunk/boinc/; revision=15202
2008-05-14 20:30:56 +00:00
David Anderson e6a5d0cbfb - scheduler: add new log flags debug_edf_sim_workload, debug_edf_sim_details
for getting info on EDF simulation;
    change output from seconds to hours
- API: remove extern "C" from graphics API
    (convince me it's needed before restoring)

svn path=/trunk/boinc/; revision=15148
2008-05-08 17:48:40 +00:00
Eric J. Korpela 8b72dc9370 - Added implementation of setenv() for systems without it.
- Fixed bug in x_opengl.C.  On systems where putenv() adds the string to
      the environment rather than copies it, the environment would end up
      containing a random peice of the stack where the DISPLAY variable had
      been temporarily stored.



svn path=/trunk/boinc/; revision=15134
2008-05-06 17:10:44 +00:00
Charlie Fenton 72df062b6c implement Mac CUDA detection; fix compiler errors and warnings; change boinc_cmd to boinccmd/
svn path=/trunk/boinc/; revision=15111
2008-05-01 09:25:51 +00:00
Rom Walton 7da4959dff - API: Fix build break from my last check-in.
api/
        graphics2_unix.C
        graphics2_win.C

svn path=/trunk/boinc/; revision=15108
2008-04-30 19:27:24 +00:00
Rom Walton 4ee6262ca7 - API: If the diagnostics framework hasn't been initialized for
the graphics application, initialize it.
        
    api/
        graphics2_unix.C
        graphics2_win.C

svn path=/trunk/boinc/; revision=15106
2008-04-30 05:50:10 +00:00
Charlie Fenton 291a192efe Graphics API: Add boinc_close_window_and_quit() API to UNIX / Mac lib.
svn path=/trunk/boinc/; revision=15004
2008-04-02 05:45:19 +00:00
Eric J. Korpela 51e24737bd - Build fixes for non-Win32, non-Linux, non-MacOS systems.
- configure script:
        - Added checks for functions strdup(), strdupa(),
            daemon(), stat64(), strcasestr()
        - Fixed problems with kc_mysql.m4 and wxWidgets.m4 returning
            invalid CFLAGS and LIBS flags.
        - Fixed incorrect order of pthread flag checking on solaris.
    - New files: lib/unix_util.[Ch].  Currently contains implementation of
        daemon() for systems that lack it.
    - Access to binary files in /proc was failing on some systems when compiled
        with 64 bit file access.  Rearranged headers and defines to force 32bit
        file access in hostinfo_unix.C
    - all_tty_idle() didn't work as advertised on any system as far as I can
        tell.  I rewrote it to check ttys that are not named /dev/tty[1-9].
        The old implementation was modifying a statically allocated read-only
        string, (and crashing on some systems) anyway.
    - added implementation of non-standard function strcasestr() to str_util.C
    - added #define of MAP_FILE to shmem.C, because it is missing from most
        unix systems, (and is unnecessary on linux anyway).
    - other minor bug fixes.


svn path=/trunk/boinc/; revision=14996
2008-04-01 21:44:12 +00:00
David Anderson 06c1d1392f - graphics API: add a boinc_close_window_and_quit() function
svn path=/trunk/boinc/; revision=14987
2008-03-31 17:03:00 +00:00
David Anderson aa130ff063 svn path=/trunk/boinc/; revision=14983 2008-03-29 22:07:50 +00:00
David Anderson b91809d3c4 - try to get API to compile on Cygwin
svn path=/trunk/boinc/; revision=14982
2008-03-29 21:53:45 +00:00
David Anderson 13400c9516 Changes for multithread app support:
- update_versions: use __ (not :) as separator for plan class
- client: add plan_class to APP_VERSION;
    an app version is now identified by platform/version/plan_class
- client CPU scheduler: don't assume apps use 1 CPU
- client: add avg_ncpus, max_cpus, flops, cmdline to RESULT
- scheduler: implement app planning scheme

Other changes:

- client: if symlink() fails, make a XML soft link instead
    (for Unix running off a FAT32 FS)
- client: don't accept nonpositive resource share from AMS
- daemons and DB: check for error returns from enumerations,
    and exit if so.  Thus, if the MySQL server goes down,
    all the daemons will soon exit.
    The cron script will restart them every 5 min,
    so when the DB server comes back up so will the project.
- web: show empty max CPU % as ---
- API: get rid of all_threads_cpu_time option (always the case now)


svn path=/trunk/boinc/; revision=14966
2008-03-27 18:25:29 +00:00
Reinhard Prix ebcbbb657e fixed internal library dependencies in Makefile.am's
svn path=/trunk/boinc/; revision=14918
2008-03-15 03:26:14 +00:00
Rom Walton 169eb876a7 - API: Attempt to use the 'Global' tag first, if the API
returns an ERROR_ACCESS_DENIED error code fallback
        to the original shmem_name.
        
    api/
        graphics2_util.C
    lib/
        shmem.C

svn path=/trunk/boinc/; revision=14911
2008-03-14 02:41:56 +00:00
Charlie Fenton 3c5d7ada20 MGR: Fix flicker in projects tab website buttons. API: fix a compiler warning which was an actual logic error.
svn path=/trunk/boinc/; revision=14909
2008-03-14 00:41:14 +00:00
Rom Walton ec1082130a - API: Include 'Global\' in the shared memory segment name for worker and
graphics applications so that the memory can be shared across terminal
        server sessions.
    - API: Add some trace messages to window creation and shutdown events, it
        is all logged to stderr.
    - API: Add some trace messages for loading graphic files.
    - API: Add some trace messages for loading font files.
    - API: There can be only one hInstance and it is assigned to the app at
        startup via winmain(). Use it throughout the graphics2 impl.
    - CC: Use the service security token to startup worker applications.
    - MGR: Use the interactive security token to startup graphics
        applications.
    - LIB: Create two different logon methods, one for logging on interactively
        (graphics applications) and one for services (worker application).

    api/
        graphics2_util.C
        graphics2_win.C
        gutil.C
        txf_util.C
    client/
        app_start.C
    lib/
        proc_control.C, .h
    win_build/
        boincmgr_curl.vcproj

svn path=/trunk/boinc/; revision=14905
2008-03-13 21:18:04 +00:00
David Anderson e227059121 - Makefile for MinGW
svn path=/trunk/boinc/; revision=14883
2008-03-10 23:12:39 +00:00
David Anderson 95772cba77 - removed boinc_ncpus_available() and boinc_nthreads() calls.
The design has been changed to constant #threads per app version
    Various changes from Kevin Reed/WCG:
    - server: add workunit.rsc_bandwidth_bound: if nonzero,
        send this WU only to hosts with that much download bandwidth
    - assimilators: if a handler returns DEFER_ASSIMILATION,
        the WU remains in INIT state and will be handled when the
        next instance completes.
        Useful if you want the assimilator to see all instances.
    - scheduler: when setting result.outcome = DETACHED,
        set received_time to now
    - scheduler: removed the reliable_time and reliable_min_avg_credit
        options
    - scheduler/web: add optional <allow_non_preferred_projects>
        in project preferences.
        If present, user will accept work from non-selected apps
        if no work is available for selected apps
    - scheduler: improved messages for projects with multiple apps
    - scheduler: added config options
        <granted_credit_weight> and <granted_credit_ramp_up>.
        Used in calculating host.claimed_credit_per_cpu_sec,
        but I'm not sure how.
    - Added two new credit-granting formulas (validate_util.C):
        stddev_credit() and two_credit()
    - server DB: add rollback_transaction() and affected_rows() to DB_CONN

    NOTE: DB update required

svn path=/trunk/boinc/; revision=14870
2008-03-07 21:13:01 +00:00
Eric J. Korpela bd55372ebe Matched functions linkage in api/graphics2.h to those in api/graphics_api.h
svn path=/trunk/boinc/; revision=14849
2008-03-05 22:02:48 +00:00
David Anderson c8384113e4 - changes to many files to fix gcc4.3 compile
svn path=/trunk/boinc/; revision=14811
2008-02-27 23:26:38 +00:00
Charlie Fenton 3a19ffb623 Fixes for V6 graphics.
svn path=/trunk/boinc/; revision=14768
2008-02-21 10:50:59 +00:00
David Anderson 54519a4ee1 - Server: add "job assignment" feature.
Lets you assign a WU to a particular host,
    to one or all hosts belonging to a user or team, or to all hosts.
    See http://boinc.berkeley.edu/trac/wiki/AssignedWork
    Disabled unless you include <enable_assignment> in config.xml
    Uses a new DB table.
    Tested but only a little.
- Server: code cleanup; moved result-handling to a new file,
    and removed the PLATFORM_LIST arg to everything
    (put it in SCHEDULER_REQUEST instead)

svn path=/trunk/boinc/; revision=14767
2008-02-21 00:47:50 +00:00
Eric J. Korpela d1ff41df4d Added reduce_main.C to libboinapi
svn path=/trunk/boinc/; revision=14736
2008-02-13 19:20:34 +00:00
David Anderson 54dc8c531a - API: critical section begin/end calls can be nested
Fixes #508 (from Nicolas)

svn path=/trunk/boinc/; revision=14694
2008-02-06 20:39:10 +00:00
David Anderson a1664cc070 - scheduler: simplified Carl's checkin (avoid virtual destructors)
- API: small tweak for standalone

svn path=/trunk/boinc/; revision=14679
2008-02-05 21:26:43 +00:00
David Anderson 5efd1cf38a - graphics API: default max graphics CPU fraction is 0.2
(see accompanying changes in example app;
    app should parse project-specific prefs)

svn path=/trunk/boinc/; revision=14635
2008-01-29 19:51:26 +00:00