there's a single GUI_HTTP object,
and it works only if used sequentially,
i.e. an op is started only after the previous one ends.
This breaks if a GUI RPC triggerse and op while
a project-list fetch (initiated by the client itself) is in progress.
Or if two managers are connected at the same time,
and both do HTTP ops.
The solution: have a separate GUI_HTTP object for each GUI_RPC_CONN,
and an additional one for use by the client itself.
svn path=/trunk/boinc/; revision=13692
(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
estimates are maintained.
The old way took concurrency into account but ignored compression;
the new way does the converse.
- client: maintain new stat: recent average transfer rates.
This track average up/down throughputs
(over wall clock time, not just while xfers are active)
with a half-life of 1 day.
Will eventually add a new pref: don't fetch new work if
either of these is above a threshold
svn path=/trunk/boinc/; revision=13407
tells the client to use this as the data directory
- scheduler: improve the message telling the client that
more disk or memory is needed;
tell them the minimum amount needed to
send any of the jobs rejected,
rather than the amount needed for the first job rejected
- manager: fix text in "connect now" dialog
svn path=/trunk/boinc/; revision=13387
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
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
- Manager: removed ForceRefresh() calls in grid views;
reduces CPU usage, still seems to work (from Frank Weiler)
svn path=/trunk/boinc/; revision=13155
These let the Manager run the graphics app.
Graphics apps have physical name *v6graphics*
- Separated ACTIVE_TASK::write() and ACTIVE_TASK::write_gui().
These need to write largely disjoint set of items.
- code cleanup: remove a zillion "else"s in parsing code
- code cleanup: change a zillion match_tag(buf, "<foo/>"
to parse_bool(buf, "foo")
client/
app.C,h
client_state.C
client_types.C,h
lib/
gui_rpc_client.h
gui_rpc_client_ops.C
sched/
server_types.C
svn path=/trunk/boinc/; revision=12938
- client: if result in statefile is labeled with unsupported platform,
set its platform to primary
(this completes the fix of 11 June, hopefully fixes#262)
client/
client_state.C
cs_statefile.C
svn path=/trunk/boinc/; revision=12907
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
If <ended>1</ended> is included in config.xml,
this gets send to clients,
and they display a "Project ended - OK to detach" message.
client/
client_state.C
client_types.C,h
scheduler_op.C
clientgui/
VIewProjects.cpp
VIewProjectsGrid.cpp
lib/
gui_rpc_client.h
gui_rpc_client_ops.C
gui_rpc_client_print.C
sched/
sched_config.C,h
server_types.C
svn path=/trunk/boinc/; revision=12742
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
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
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
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
* 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
print a message but don't reset projects
(otherwise people running on 64-bit machines would lost
in-progress jobs when switching to 64-bit client)
client/
client_state.C
svn path=/trunk/boinc/; revision=12513
- 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
- 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