- 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
in <app_version>s from the server,
keep track of the number free of each type of coproc,
and don't run an app that needs more than are available.
(not quite working yet)
svn path=/trunk/boinc/; revision=14992
and change the correspending structure field from 64KB to 256KB
(could increase this if needed).
This is needed to handle app versions with lots (> 100) of files
- change LARGE_BLOB_SIZE to BLOB_SIZE a bunch of places
- Change COPROCS from vector<COPROC> to vector<COPROC*>.
Otherwise the right virtual functions of COPROCs don't get called
svn path=/trunk/boinc/; revision=14986
in server->client reply messages and in the client itself,
move app-planning info from RESULT to APP_VERSION.
This was necessary to allow anonymous platform info (app_info.xml)
to specify avg_ncpus, etc.
e.g., if someone wants to write a multithread version of SETI@home,
or a GPU/CUDA version,
they can run it using the anonymous platform mechanism
and it will be scheduled correctly.
If a server sends an existing APP_VERSION but with different
app-planning info, the client will accept and use the new info.
svn path=/trunk/boinc/; revision=14978
this broke some projects' back-end code.
Make a new function (boinc_file_or_symlink_exists())
for use by the client when clearing out slot dirs
svn path=/trunk/boinc/; revision=14968
- 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
the accounts have been created.
- WINSETUP: Return the user rights to a known good state for 'boinc_master',
'boinc_project', 'boinc_admins', 'boinc_users', and 'boinc_projects'.
win_build/installerv2/redist/Windows/src/boinccas/
boinccas.cpp
boinccas.def
boinccas.vcproj
CAGrantBOINCAdminsRights.cpp, .h (Added)
CAGrantBOINCMasterRights.cpp
CAGrantBOINCProjectRights.cpp
CAGrantBOINCProjectsRights.cpp, .h (Added)
CAGrantBOINCUsersRights.cpp, .h (Added)
CAHideBOINCMasterProfile.cpp, .h (Added)
CAHideBOINCProjectProfile.cpp, .h (Added)
lsaprivs.cpp, .h
win_build/installerv2/redist/Windows/Win32/
boinccas.dll
boinccas95.dll
svn path=/trunk/boinc/; revision=14964
- scheduler: wreq.core_client_version was being computed in
resend_lost_results() (which isn't necessarily called)
but its value was used elsewhere.
svn path=/trunk/boinc/; revision=14948
This will allow applications to access shared libraries
by their logical names,
which simplifies things when you have multiple platforms,
and the apps (or libraries) refer to shared libraries
by names that don't include the platform.
This shouldn't impact the API - boinc_resolve_filename()
will open the file, see that it's not an XML link file,
and the symbolic link will be used directly.
At some point we can change boinc_resolve_filename() on Unix
to be a no-op if the client is 6.2+
- client (Unix):
Append the slot dir to LD_LIBRARY_PATH.
svn path=/trunk/boinc/; revision=14944
- DB code: remove "is_high_priority" stuff.
- scheduler: merge find_app_version() into get_app_version().
Have the latter memoize its results (both positive and negative).
Have it call app_plan() for apps with nonempty plan_class.
- scheduler: first steps towards improved selectability of log messages.
It will eventually be like the client,
where you can select among various types of messages.
- feeder: if can't unlink the reread_db trigger file, exit
(else we'd go into an infinite loop)
svn path=/trunk/boinc/; revision=14940
NOTE: Do not use the at() function on a vector unless you
also use a try/catch handler.
- MGR: Remove code duplication
clientgui/
sg_ClientStateIndicator.h
sg_ProgressBar.cpp, .h
sg_ViewTabPage.cpp
svn path=/trunk/boinc/; revision=14936