Commit Graph

327 Commits

Author SHA1 Message Date
David Anderson eaed993f4c - User web and client: added a new pref "suspend_if_no_recent_input"
that lets you suspend computation after a specified period of idleness.
        This is necessary to allow some machines to go into low-power mode
        when they're not being used.
    - Change the wording of some existing prefs; for example, changed
        "Do work while computer is in use?" to
        "Suspend work while computer is in use".
        The former is confusing - if you say yes, BOINC may in fact
        NOT do work while the computer is in use,
        due to other factors (time of day, etc.)
    TODO: HOST_INFO::users_idle() should be changed so that it
        returns the idle time
        (rather than telling you whether we've been idle for X)

svn path=/trunk/boinc/; revision=13193
2007-07-19 23:22:19 +00:00
David Anderson 79adf59f98 - client: if can't write state file, don't immediately exit,
but don't do anything other than handle GUI RPCs.
    After 50 secs, print an "about to exit" message.
    After 60 seconds, exit

svn path=/trunk/boinc/; revision=13162
2007-07-16 20:30:21 +00:00
David Anderson b9d7ecdc1a - client: run_if_user_active pref applies to both
network transfers and CPU usage.
    (Note: maybe we should have a separate pref for this).

svn path=/trunk/boinc/; revision=13131
2007-07-10 17:49:51 +00:00
David Anderson cdc65cd283 - Manager: if a job is running EDF, show "high priority" in status
- compile fixes for Charlie's next-to-last checkin
    
    client/
        client_state.h
        cpu_sched.C
        sim.h
        sim_util.C
    clientgui/
        ViewWork.cpp
        ViewWorkGrid.cpp

svn path=/trunk/boinc/; revision=13021
2007-06-25 19:05:29 +00:00
Charlie Fenton 7bb1b1a0d4 CC: Add logic to scheduler, etc. for systems which limit the number of shared memory segments per process and / or system-wide.
svn path=/trunk/boinc/; revision=13015
2007-06-25 11:46:15 +00:00
David Anderson 1e7e58875a - client: add cmdline options --exit_before_start and --exit_after_finish.
This cause the core client to exit immediately before or after
    running a job,
    letting you examine the contents of the slot directory.
- scheduler: changed max # of CPUs used in daily_result_quota
    limit from 4 to 8, and make it a compile-time parameter
- feeder/scheduler: make the number of work items in shared
    memory configurable (in config.xml).
    The element is <shmem_work_items>
- feeder: make the size of the work item query configurable
    (<feeder_query_size)
- feeder: remove code related to removing infeasible results
    from shared mem.
    This mechanism was never needed,
    and I think a timeout would accomplish the same effect.

client/
    app.C
    app_start.C
    client_state.C,h
    cs_cmdline.C
sched/
    feeder.C
    sched_array.C
    sched_config.C,h
    sched_send.C
    sched_shmem.C,h
    sched_util.C
    show_shmem.C

svn path=/trunk/boinc/; revision=12771
2007-05-29 21:45:01 +00:00
David Anderson 5bbcc6b3b6 - client: fix bug where:
1) client wakes up from hibernate
    2) one or more network ops start (e.g. because backoff expired)
    3) ops fail because DNS system isn't up yet
    4) connect to reference site fails too
    5) user sees "please create physical connection",
        even though there's been a physical connection the whole time.
    Solution:
    - keep track of "last wakeup time": the last time the
        time of day (measured in poll_slow_events())            increased by more than 10 times the polling interval.
        This must be either coming out of hibernation,
        or the user resetting the system clock.
    - When a network operation fails, try to contact the reference site
        only if it's more than 30 seconds after the last wakeup time.

client/
    client_state.C,h
    net_stats.C

svn path=/trunk/boinc/; revision=12665
2007-05-14 21:45:02 +00:00
David Anderson bd8b0aed41 - core client: on attach to project,
if the initial sched request failed,
		the manager would show "communicating" for 60 sec,
		then time out and show "failed to attach".
		But the project would actually be attached.
		This was due to a logic error,
		but I fixed it in a more fundamental way:
		by considering an attach to be complete immediately,
		without waiting for a successful scheduler RPC.

		This was originally done to ensure that the URL and account key were valid.
		But when using the BOINC Manager, we've already verified
		both of these before doing the attach project RPC.

		When using boinc_cmd, you now have to check for messages
		indicating a bad URL or account key.
		I changed things to print these messages on every sched RPC.

		Implementation: the notion of "tentative project" no longer exists.

	client/
		client_state.C,h
		client_types.C,h
		cs_account.C
		cs_benchmarks.C
		cs_scheduler.C
		gui_rpc_server_ops.C
		scheduler_op.C
		sim.C
		sim_util.C

svn path=/trunk/boinc/; revision=12663
2007-05-14 19:18:45 +00:00
David Anderson 2853649d28 - core client: add <no_alt_platform> config option;
eliminates use of alternate platforms.

    client/
        client_state.h
        cs_platforms.C
        cs_statefile.C
        log_flags.C,h

svn path=/trunk/boinc/; revision=12600
2007-05-07 19:38:27 +00:00
David Anderson a6521f58e7 - core client: when parsing statefile or scheduler reply,
if get an app_version with unknown platform name, ignore it.
		This means that, e.g. if someone moves a BOINC directory
		from Intel to PowerPC Mac, things will still work right.

	client/
		client_state.C,h
		cs_platforms.C
		cs_scheduler.C
		cs_statefile.C

svn path=/trunk/boinc/; revision=12579
2007-05-06 20:22:39 +00:00
David Anderson 4a1741e220 - Core client: handle multiple platforms correctly.
Remove the tacet assumption that a host can handle
        applications for a single platform.
        With the Apr 30 scheduler changes,
        a project may (at different times)
        send app versions for the same app and version number,
        but different platforms.
        Before we would have ignored all but the first;
        now we handle them correctly.

        Implementation notes:
        - Add APP_VERSION.platform, RESULT.platform,
            and RESULT.version_num.
            If these are missing from an XML doc
            (e.g. an existing state file or a scheduler reply
            from a project not running current server)
            then set to the primary platform.
        - Continue to write workunit.version_num
            and active_task.version_num to state file,
            even though these are no longer part of the struct.
            This allows users to revert to an older version.

    client/
        app.C
        check_state.C
        client_state.C,h
        client_types.C,h
        cs_apps.C
        cs_scheduler.C
        cs_statefile.C
        sim.C

svn path=/trunk/boinc/; revision=12542
2007-05-03 17:14:30 +00:00
Rom Walton a100628ee8 - fixes #154:
* refactored the alternate platform mechinism so that we
          can support multiple alternate platforms.
        * moved everything to cs_platforms.C since we expect the
          kind of sprawl that is in host_info.C on the *nix
          environments.
    - Clean up some warnings
          
    client/
        acct_setup.C
        client_state.C, .h
        client_types.h
        cs_platforms.C (Added)
        cs_scheduler.C
        cs_statefile.C
        http_curl.C
    lib/
        str_util.h

svn path=/trunk/boinc/; revision=12531
2007-05-02 17:53:35 +00:00
Eric J. Korpela 8a8ffc8ef9 Eric K 24 Apr 07
-  Exteded the "altername_platform" mechanism to x86_64 linux
       and solaris.  The current alternate platforms found by configure
       are...
	 x86_64-pc-linux-gnu    -> i686-pc-linux-gnu
	 sparc64-sun-solaris    -> sparc-sun-solaris
	 sparc-sun-solaris      -> sparc-sun-solaris2.7
	 powerpc64-apple-darwin -> powerpc-apple-darwin
    -  The alternate platform can be overridden on the configure command line
         --with-boinc-alt-platform="platformname"

    m4/
        boinc_platform.m4
    sched/
        Makefile.am
    client/
        client_state.C
        cs_scheduler.C
        client_state.h


svn path=/trunk/boinc/; revision=12467
2007-04-25 02:02:24 +00:00
Rom Walton 3307404373 Fix build break introduced when windows_x86_64 support was added.
svn path=/trunk/boinc/; revision=12456
2007-04-23 22:25:19 +00:00
Rom Walton ac6974b62b Rom 19 Apr 2007
- Fix a minor compile problem on 64-bit Windows platforms with the
        call to SetTimer.
    - fixes #80: Introduce the notion of an alternate platform for 64-bit
        Windows clients, which can also run 32-bit Windows apps.
        
      TODO: We'll need to refactor the whole platform section in the
        scheduler request creation section so that it can handle
        multiple alternate platforms and for Linux/Mac.
        
    api/
        windows_opengl.C
    client/
        client_state.C, .h
        cpp.h
        cs_scheduler.C

svn path=/trunk/boinc/; revision=12421
2007-04-19 20:53:16 +00:00
David Anderson 3f915e647f svn path=/trunk/boinc/; revision=12407 2007-04-17 22:24:53 +00:00
David Anderson 3eaea4fb71 *** empty log message ***
svn path=/trunk/boinc/; revision=12347
2007-04-11 21:49:57 +00:00
David Anderson 11869bc0be *** empty log message ***
svn path=/trunk/boinc/; revision=12333
2007-04-09 02:17:26 +00:00
David Anderson 275427c9a2 *** empty log message ***
svn path=/trunk/boinc/; revision=12304
2007-04-03 20:30:44 +00:00
David Anderson 8ee50511de *** empty log message ***
svn path=/trunk/boinc/; revision=12277
2007-03-28 21:30:45 +00:00
David Anderson b5dbce7b3f *** empty log message ***
svn path=/trunk/boinc/; revision=12273
2007-03-27 18:36:22 +00:00
David Anderson 035642f298 *** empty log message ***
svn path=/trunk/boinc/; revision=12244
2007-03-19 19:13:40 +00:00
David Anderson 6984ec8cf4 *** empty log message ***
svn path=/trunk/boinc/; revision=12233
2007-03-15 19:08:22 +00:00
David Anderson 138f17af40 *** empty log message ***
svn path=/trunk/boinc/; revision=12216
2007-03-13 19:33:27 +00:00
David Anderson 2b67a5e84e *** empty log message ***
svn path=/trunk/boinc/; revision=12185
2007-03-04 02:30:48 +00:00
David Anderson 6b4803d969 *** empty log message ***
svn path=/trunk/boinc/; revision=12146
2007-02-23 20:24:52 +00:00
David Anderson 4d76b40d04 *** empty log message ***
svn path=/trunk/boinc/; revision=12144
2007-02-23 17:29:19 +00:00
David Anderson 81effa6a7b *** empty log message ***
svn path=/trunk/boinc/; revision=12127
2007-02-21 16:26:51 +00:00
David Anderson 47f8a509fe *** empty log message ***
svn path=/trunk/boinc/; revision=11981
2007-01-26 18:38:17 +00:00
David Anderson 3f17de9d9d *** empty log message ***
svn path=/trunk/boinc/; revision=11971
2007-01-25 21:36:27 +00:00
David Anderson 6a10211584 *** empty log message ***
svn path=/trunk/boinc/; revision=11960
2007-01-24 22:55:00 +00:00
David Anderson 5ac8ba3150 *** empty log message ***
svn path=/trunk/boinc/; revision=11721
2006-12-26 00:37:25 +00:00
David Anderson 86ad19ce5f *** empty log message ***
svn path=/trunk/boinc/; revision=11672
2006-12-14 00:42:43 +00:00
David Anderson b404379448 *** empty log message ***
svn path=/trunk/boinc/; revision=11658
2006-12-13 00:54:27 +00:00
David Anderson 41eb40b051 *** empty log message ***
svn path=/trunk/boinc/; revision=11643
2006-12-11 23:42:54 +00:00
David Anderson dcf1b946db *** empty log message ***
svn path=/trunk/boinc/; revision=11589
2006-11-26 02:06:30 +00:00
David Anderson 0a3a6fa5d7 *** empty log message ***
svn path=/trunk/boinc/; revision=11560
2006-11-21 18:41:27 +00:00
David Anderson 6f6f62c955 *** empty log message ***
svn path=/trunk/boinc/; revision=11515
2006-11-10 17:55:22 +00:00
David Anderson 3bb15a56cf *** empty log message ***
svn path=/trunk/boinc/; revision=11503
2006-11-09 17:01:08 +00:00
David Anderson 92a34648a6 *** empty log message ***
svn path=/trunk/boinc/; revision=11494
2006-11-08 00:20:16 +00:00
David Anderson 1018cfcb67 *** empty log message ***
svn path=/trunk/boinc/; revision=11326
2006-10-20 15:56:22 +00:00
David Anderson 96ce7efd77 *** empty log message ***
svn path=/trunk/boinc/; revision=11239
2006-10-03 19:44:54 +00:00
David Anderson 119ef5da01 *** empty log message ***
svn path=/trunk/boinc/; revision=11231
2006-10-02 23:42:38 +00:00
David Anderson 59d5508392 *** empty log message ***
svn path=/trunk/boinc/; revision=11107
2006-09-05 19:00:59 +00:00
David Anderson 7ce1144b73 *** empty log message ***
svn path=/trunk/boinc/; revision=11076
2006-09-01 21:06:30 +00:00
David Anderson 886604d12c *** empty log message ***
svn path=/trunk/boinc/; revision=11038
2006-08-29 20:39:44 +00:00
David Anderson d079ddd589 startup sequence
svn path=/trunk/boinc/; revision=11000
2006-08-24 20:33:46 +00:00
Rom Walton 5acec81450 *** empty log message ***
svn path=/trunk/boinc/; revision=10993
2006-08-23 22:16:19 +00:00
David Anderson 0e5c16169f *** empty log message ***
svn path=/trunk/boinc/; revision=10989
2006-08-23 21:14:47 +00:00
David Anderson 20dea204ca *** empty log message ***
svn path=/trunk/boinc/; revision=10972
2006-08-22 20:58:57 +00:00