*** empty log message ***

svn path=/trunk/boinc/; revision=2823
This commit is contained in:
David Anderson 2003-12-24 00:50:51 +00:00
parent 373917017a
commit 50e2c6cff2
25 changed files with 368 additions and 145 deletions

View File

@ -46,6 +46,7 @@
#include "parse.h"
#include "shmem.h"
#include "util.h"
#include "filesys.h"
#include "error_numbers.h"
#include "app_ipc.h"
@ -89,7 +90,7 @@ int boinc_parse_init_data_file() {
// If in standalone mode, use init files if they're there,
// but don't demand that they exist
//
f = fopen(INIT_DATA_FILE, "r");
f = boinc_fopen(INIT_DATA_FILE, "r");
if (!f) {
if (standalone) {
safe_strncpy(aid.app_preferences, "", sizeof(aid.app_preferences));
@ -456,7 +457,7 @@ int boinc_init(bool standalone_ /* = false */) {
//
initial_wu_cpu_time = aid.wu_cpu_time;
f = fopen(FD_INIT_FILE, "r");
f = boinc_fopen(FD_INIT_FILE, "r");
if (f) {
parse_fd_init_file(f);
fclose(f);

View File

@ -59,7 +59,7 @@ int boinc_init_graphics() {
FILE* f;
int retval;
f = fopen(GRAPHICS_DATA_FILE, "r");
f = boinc_fopen(GRAPHICS_DATA_FILE, "r");
if (!f) {
fprintf(stderr, "boinc_init(): can't open graphics data file\n");
fprintf(stderr, "Using default graphics settings.\n");

View File

@ -1065,7 +1065,7 @@ int read_ppm_file(char* name, int& w, int& h, unsigned char** arrayp) {
unsigned char* array;
int i;
f = fopen(name, "rb");
f = boinc_fopen(name, "rb");
if (!f) return -1;
do {fgets(buf, 256, f);} while (buf[0] == '#');
if (buf[0] != 'P') {
@ -1182,7 +1182,7 @@ tImageJPG *LoadJPG(const char *filename) {
tImageJPG *pImageData = NULL;
FILE *pFile;
if((pFile = fopen(filename, "rb")) == NULL) {
if((pFile = boinc_fopen(filename, "rb")) == NULL) {
fprintf(stderr,"Unable to load JPG File!");
return NULL;
}
@ -1206,7 +1206,7 @@ tImageJPG *LoadJPG(const char *filename) {
}
void printdata(char* filename, int x, int y, unsigned char* data) {
FILE* bmpfile = fopen(filename,"w");
FILE* bmpfile = boinc_fopen(filename,"w");
fprintf(bmpfile,"%i,%i\n",x,y);
for(int i=0;i<y;i++) {
for(int c=0;c<8;c++) {
@ -1314,7 +1314,7 @@ int TEXTURE_DESC::CreateTextureTGA(char* strFileName) {
int TEXTURE_DESC::load_image_file(char* filename) {
int retval;
FILE* f;
f = fopen(filename, "r");
f = boinc_fopen(filename, "r");
if (!f) goto done;
fclose(f);

View File

@ -25,12 +25,13 @@
#include <malloc.h>
#endif
#include "filesys.h"
#include "boinc_api.h"
int MFILE::open(const char* path, const char* mode) {
buf = 0;
len = 0;
f = fopen(path, mode);
f = boinc_fopen(path, mode);
if (!f) return -1;
return 0;
}

View File

@ -8664,3 +8664,30 @@ David 23 Dec 2003
client/
app.C
client_state.C
David 23 Dec 2003
- added boinc_fopen() function.
This should be used in lieu of fopen(), in both core client and apps,
whenever opening a file for writing.
This is because on Windows a utility program like FileFind
might have the file open at that exact moment,
and your fopen() will fail.
boinc_fopen() deals with this by sleeping for 3 seconds and trying again.
NOTE: in SETI@home there's a much fancier function
that does exponential backoff up to one hour.
Can't do that here, in part because the GUI requires
the core client to be nonblocking.
api/
boinc_api.C
graphics_api.C
gutil.C
mfile.C
client/
app.C
client_types.C
cs_benchmark.C
cs_scheduler.C
cs_statefile.C
http.C
doc/
(various)

View File

@ -179,7 +179,7 @@ int ACTIVE_TASK::write_app_init_file(APP_INIT_DATA& aid) {
aid.wu_cpu_time = starting_cpu_time;
sprintf(init_data_path, "%s%s%s", slot_dir, PATH_SEPARATOR, INIT_DATA_FILE);
f = fopen(init_data_path, "w");
f = boinc_fopen(init_data_path, "w");
if (!f) {
msg_printf(wup->project, MSG_ERROR,
"Failed to open core-to-app prefs file %s",
@ -238,7 +238,7 @@ int ACTIVE_TASK::start(bool first_time) {
if (retval) return retval;
sprintf(graphics_data_path, "%s%s%s", slot_dir, PATH_SEPARATOR, GRAPHICS_DATA_FILE);
f = fopen(graphics_data_path, "w");
f = boinc_fopen(graphics_data_path, "w");
if (!f) {
msg_printf(wup->project, MSG_ERROR,
"Failed to open core-to-app graphics prefs file %s",
@ -250,7 +250,7 @@ int ACTIVE_TASK::start(bool first_time) {
fclose(f);
sprintf(fd_init_path, "%s%s%s", slot_dir, PATH_SEPARATOR, FD_INIT_FILE);
f = fopen(fd_init_path, "w");
f = boinc_fopen(fd_init_path, "w");
if (!f) {
msg_printf(wup->project, MSG_ERROR, "Failed to open init file %s", fd_init_path);
return ERR_FOPEN;

View File

@ -83,7 +83,7 @@ int PROJECT::write_account_file() {
int retval;
get_account_filename(master_url, path);
f = fopen(TEMP_FILE_NAME, "w");
f = boinc_fopen(TEMP_FILE_NAME, "w");
if (!f) return ERR_FOPEN;
#ifndef _WIN32
chmod(TEMP_FILE_NAME, 0600);

View File

@ -154,7 +154,7 @@ int CLIENT_STATE::cpu_benchmarks() {
}
host_info.p_calculated = (double)time(0);
finfo = fopen(CPU_BENCHMARKS_FILE_NAME, "w");
finfo = boinc_fopen(CPU_BENCHMARKS_FILE_NAME, "w");
if(!finfo) return ERR_FOPEN;
host_info.write_cpu_benchmarks(finfo);
fclose(finfo);

View File

@ -213,7 +213,7 @@ void CLIENT_STATE::compute_resource_debts() {
// server
//
int CLIENT_STATE::make_scheduler_request(PROJECT* p, double work_req) {
FILE* f = fopen(SCHED_OP_REQUEST_FILE, "wb");
FILE* f = boinc_fopen(SCHED_OP_REQUEST_FILE, "wb");
unsigned int i;
RESULT* rp;
int retval;
@ -447,7 +447,7 @@ int CLIENT_STATE::handle_scheduler_reply(
// insert extra elements, write to disk, and parse
//
if (sr.global_prefs_xml) {
f = fopen(GLOBAL_PREFS_FILE_NAME, "w");
f = boinc_fopen(GLOBAL_PREFS_FILE_NAME, "w");
if (!f) return ERR_FOPEN;
fprintf(f,
"<global_preferences>\n"

View File

@ -186,7 +186,7 @@ int CLIENT_STATE::parse_venue() {
//
int CLIENT_STATE::write_state_file() {
unsigned int i, j;
FILE* f = fopen(STATE_FILE_TEMP, "w");
FILE* f = boinc_fopen(STATE_FILE_TEMP, "w");
int retval;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_STATE);

View File

@ -556,7 +556,7 @@ bool HTTP_OP_SET::poll() {
case HTTP_OP_GET:
htp->http_op_state = HTTP_STATE_REPLY_BODY;
htp->file = fopen(htp->outfile, "ab");
htp->file = boinc_fopen(htp->outfile, "ab");
if (!htp->file) {
msg_printf(NULL, MSG_ERROR,
"HTTP_OP_SET::poll(): can't open output file %s\n",

View File

@ -1,9 +1,18 @@
<?
require_once("docutil.php");
page_head("Running the BOINC client");
page_head("Installing and running the BOINC client");
echo "
<ul>
<li><a href=#win>Instructions for the Windows client</a>
<li><a href=#cmdline>Instructions for the command-line client</a>
(Mac OS/X, Linus, Unix)
<li><a href=#mac>Additional instructions for Mac OS/X</a>
</ul>
<a name=win>
<h3>BOINC for Windows</h3>
<p>
Install BOINC by running the installer program.
<p>
The <b>BOINC work manager</b> program controls
the use of your computer's disk, network, and processor resources.
It is normally started at boot time.
@ -118,8 +127,14 @@ if any is available.
Otherwise it draws the BOINC logo bouncing around the screen.
<hr>
<a name=cmdline>
<h3>The BOINC command-line client</h3>
<p>
Install the BOINC client by using gunzip to decompress the executable.
Put it in a directory by itself.
Run it manually, from your login script,
or from system startup files.
<p>
The command line client has several options:
";
list_start();
@ -158,5 +173,62 @@ list_item("-version",
"Show client version."
);
list_end();
echo"
<a name=mac>
<h3>Installing BOINC on Mac OS/X</h3>
<p>
The Mac OS X client will unpack correctly with gunzip on Mac OS X
10.2 (jaguar) or 10.3 (panther) as long as you type the command
within Terminal. Stuffit 7.x or newer will work under the Finder
in either OS X or OS 9, but I'd recommend using 'gunzip' or 'gzip -d'
within Terminal instead.
<p>
However, the two main browsers on OS X (IE 5.2.x and Safari 1.x) will
automatically unpack downloads by default, so your work may already
be done.
<p>
If you use IE, the boinc client will download and automatically unpack
leaving two files:
<ol>
<li>
boinc_2.12_powerpc-apple-darwin
[this will have the stuffit icon in the finder]
<li>
boinc_2.12_powerpc-apple-darwin7.0.0
[this will not have any icon in the finder]
</ol>
<p>
#2 is the unpacked program ready-to-run. You can just start Terminal
and run boinc.
<p>
If you use Safari, the boinc client will download and automatically
unpack, leaving a single file:
<ul>
<li>
boinc_2.12_powerpc-apple-darwin7.0.0
[this will not have any icon in the finder]
</ul>
This is the unpacked program, but it's not yet ready-to-run (this is
a bug with how Safari handles gzipped downloads; we'll fix this soon).
<p>
Here's what you have to do to fix the Safari download (apologies if
you already know how to do this):
<ul>
<li> Create a folder in your home directory and put the boinc
file in it
<li> Start Terminal
<li> 'cd' to the folder you just created
<li> Type 'chmod +x boinc_2.12_powerpc-apple-darwin7.0.0'
(without the quotes)
</ul>
Now you can run BOINC.
";
page_tail();
?>

View File

@ -29,6 +29,8 @@ Janus Kristensen
<br>
Tim Lan
<br>
Rom Walton
<br>
Oliver Wang
";
page_tail();

View File

@ -34,9 +34,8 @@ and a list of the project's applications,
with counts of results in various states.
<br>
For example:
<pre> "
. htmlspecialchars("
<tables>
<pre>",
htmlspecialchars("<tables>
<update_time>1046220857</update_time>
<nusers_total>127</nusers_total>
<nusers_per_file_summary>1000</nusers_per_file_summary>
@ -57,8 +56,8 @@ For example:
...
</applications>
</tables>
") . "
</pre>
"),
"</pre>
<b>team_total_credit_N.xml</b>
<br>
Team summaries, ordered by decreasing <a href=credit.php>total credit</a><.
@ -100,127 +99,136 @@ The format of the various XML elements is as follows:
<p>
<b>Team summary</b>
<pre>
&lt;team>
&lt;id>5&lt;/id>
&lt;name>Broadband Reports Team Starfire&lt;/name>
&lt;total_credit>153402.872429&lt;/total_credit>
&lt;expavg_credit>503030.483254&lt;/expavg_credit>
&lt;nusers>14&lt;/nusers>
&lt;/team>
</pre>
<pre>",
htmlspecialchars("
<team>
<id>5</id>
<name>Broadband Reports Team Starfire</name>
<total_credit>153402.872429</total_credit>
<expavg_credit>503030.483254</expavg_credit>
<nusers>14</nusers>
</team>
"),
"</pre>
<p>
<b>Team detail</b>
<pre>
&lt;team>
&lt;id>5&lt;/id>
&lt;name>Broadband Reports Team Starfire&lt;/name>
&lt;total_credit>153402.872429&lt;/total_credit>
&lt;expavg_credit>503030.483254&lt;/expavg_credit>
&lt;nusers>14&lt;/nusers>
&lt;create_time>0&lt;/create_time>
&lt;name_html>%3Ca%20href%3D%27http%3A%2F%2Fbroadbandreports%2Ecom%2Fforum%2Fseti%2
<pre>",
htmlspecialchars("
<team>
<id>5</id>
<name>Broadband Reports Team Starfire</name>
<total_credit>153402.872429</total_credit>
<expavg_credit>503030.483254</expavg_credit>
<nusers>14</nusers>
<create_time>0</create_time>
<name_html>%3Ca%20href%3D%27http%3A%2F%2Fbroadbandreports%2Ecom%2Fforum%2Fseti%2
7%3E%3Cimg%20src%3D%27http%3A%2F%2Fi%2Edslr%2Enet%2Fpics%2Ffaqs%2Fimage2067%2Ejp
g%27%3E&lt;/name_html>
&lt;country>None&lt;/country>
&lt;user>
&lt;id>12&lt;/id>
&lt;name>John Keck&lt;/name>
&lt;total_credit>42698.813543&lt;/total_credit>
&lt;expavg_credit>117348.653646&lt;/expavg_credit>
&lt;teamid>5&lt;/teamid>
&lt;/user>
&lt;user>
&lt;id>14&lt;/id>
&lt;name>Liontaur&lt;/name>
&lt;total_credit>46389.595430&lt;/total_credit>
&lt;expavg_credit>122936.372641&lt;/expavg_credit>
&lt;teamid>5&lt;/teamid>
&lt;/user>
&lt;/team>
</pre>
g%27%3E</name_html>
<country>None</country>
<user>
<id>12</id>
<name>John Keck</name>
<total_credit>42698.813543</total_credit>
<expavg_credit>117348.653646</expavg_credit>
<teamid>5</teamid>
</user>
<user>
<id>14</id>
<name>Liontaur</name>
<total_credit>46389.595430</total_credit>
<expavg_credit>122936.372641</expavg_credit>
<teamid>5</teamid>
</user>
</team>
"),"</pre>
<p>
<b>User summary</b>
<pre>
&lt;user>
&lt;id>12&lt;/id>
&lt;name>John Keck&lt;/name>
&lt;total_credit>42698.813543&lt;/total_credit>
&lt;expavg_credit>117348.653646&lt;/expavg_credit>
&lt;teamid>5&lt;/teamid>
&lt;/user>
</pre>
<pre>",
htmlspecialchars("
<user>
<id>12</id>
<name>John Keck</name>
<total_credit>42698.813543</total_credit>
<expavg_credit>117348.653646</expavg_credit>
[ <teamid>5</teamid> ]
[ <has_profile/> ]
</user>
"), "</pre>
<p>
<b>User detail</b>
<pre>
&lt;user>
&lt;id>3&lt;/id>
&lt;name>Eric Heien&lt;/name>
&lt;total_credit>4897.904591&lt;/total_credit>
&lt;expavg_credit>9820.631754&lt;/expavg_credit>
&lt;country>United States&lt;/country>
&lt;create_time>1046220857&lt;/ncreate_time>
&lt;teamid>14&lt;/teamid>
&lt;host>
&lt;id>27&lt;/id>
&lt;total_credit>0.000000&lt;/total_credit>
&lt;expavg_credit>0.000000&lt;/expavg_credit>
&lt;p_vendor>&lt;/p_vendor>
&lt;p_model>&lt;/p_model>
&lt;os_name>Darwin&lt;/os_name>
&lt;os_version>6.2&lt;/os_version>
&lt;/host>
&lt;host>
&lt;id>266&lt;/id>
&lt;total_credit>0.000000&lt;/total_credit>
&lt;expavg_credit>0.000000&lt;/expavg_credit>
&lt;p_vendor>GenuineIntel&lt;/p_vendor>
&lt;p_model>Intel(R)&lt;/p_model>
&lt;os_name>Linux&lt;/os_name>
&lt;os_version>2.4.18-18.7.x&lt;/os_version>
&lt;/host>
&lt;/user>
</pre>
<pre>",
htmlspecialchars("
<user>
<id>3</id>
<name>Eric Heien</name>
<total_credit>4897.904591</total_credit>
<expavg_credit>9820.631754</expavg_credit>
<country>United States</country>
<create_time>1046220857</ncreate_time>
[ <teamid>14</teamid> ]
[ <has_profile/> ]
<host>
<id>27</id>
<total_credit>0.000000</total_credit>
<expavg_credit>0.000000</expavg_credit>
<p_vendor></p_vendor>
<p_model></p_model>
<os_name>Darwin</os_name>
<os_version>6.2</os_version>
</host>
<host>
<id>266</id>
<total_credit>0.000000</total_credit>
<expavg_credit>0.000000</expavg_credit>
<p_vendor>GenuineIntel</p_vendor>
<p_model>Intel(R)</p_model>
<os_name>Linux</os_name>
<os_version>2.4.18-18.7.x</os_version>
</host>
</user>
"),"</pre>
<p>
<b>Host summary</b>
<pre>
&lt;host>
&lt;id>266&lt;/id>
&lt;total_credit>0.000000&lt;/total_credit>
&lt;expavg_credit>0.000000&lt;/expavg_credit>
&lt;p_vendor>GenuineIntel&lt;/p_vendor>
&lt;p_model>Intel(R)&lt;/p_model>
&lt;os_name>Linux&lt;/os_name>
&lt;os_version>2.4.18-18.7.x&lt;/os_version>
&lt;/host>
</pre>
<pre>",
htmlspecialchars("
<host>
<id>266</id>
<total_credit>0.000000</total_credit>
<expavg_credit>0.000000</expavg_credit>
<p_vendor>GenuineIntel</p_vendor>
<p_model>Intel(R)</p_model>
<os_name>Linux</os_name>
<os_version>2.4.18-18.7.x</os_version>
</host>
"),"</pre>
<p>
<b>Host detail</b>
<pre>
&lt;host>
&lt;id>102&lt;/id>
&lt;userid>3&lt;/userid>
&lt;total_credit>0.000000&lt;/total_credit>
&lt;expavg_credit>0.000000&lt;/expavg_credit>
&lt;p_vendor>GenuineIntel&lt;/p_vendor>
&lt;p_model>Pentium&lt;/p_model>
&lt;os_name>Windows XP&lt;/os_name>
&lt;os_version>5.1&lt;/os_version>
&lt;create_time>1040170006&lt;/create_time>
&lt;timezone>28800&lt;/timezone>
&lt;ncpus>2&lt;/ncpus>
&lt;p_fpops>45724737.082762&lt;/p_fpops>
&lt;p_iops>43233895.373973&lt;/p_iops>
&lt;p_membw>4032258.064516&lt;/p_membw>
&lt;m_nbytes>670478336.000000&lt;/m_nbytes>
&lt;m_cache>1000000.000000&lt;/m_cache>
&lt;m_swap>1638260736.000000&lt;/m_swap>
&lt;d_total>9088008192.000000&lt;/d_total>
&lt;d_free>3788505088.000000&lt;/d_free>
&lt;n_bwup>24109.794088&lt;/n_bwup>
&lt;n_bwdown>57037.049858&lt;/n_bwdown>
&lt;/host>
</pre>
<pre>",
htmlspecialchars("
<host>
<id>102</id>
<userid>3</userid>
<total_credit>0.000000</total_credit>
<expavg_credit>0.000000</expavg_credit>
<p_vendor>GenuineIntel</p_vendor>
<p_model>Pentium</p_model>
<os_name>Windows XP</os_name>
<os_version>5.1</os_version>
<create_time>1040170006</create_time>
<timezone>28800</timezone>
<ncpus>2</ncpus>
<p_fpops>45724737.082762</p_fpops>
<p_iops>43233895.373973</p_iops>
<p_membw>4032258.064516</p_membw>
<m_nbytes>670478336.000000</m_nbytes>
<m_cache>1000000.000000</m_cache>
<m_swap>1638260736.000000</m_swap>
<d_total>9088008192.000000</d_total>
<d_free>3788505088.000000</d_free>
<n_bwup>24109.794088</n_bwup>
<n_bwdown>57037.049858</n_bwdown>
</host>
"),"</pre>
";
page_tail();
?>

BIN
doc/iconsmall.ico Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -22,7 +22,7 @@ computer resources
<a href="intro.php"><b>Overview of BOINC</b></a>
<br><br>
<a href=participate.php><b>Participating in BOINC projects</b></a>
<a href=participate.php><b>Participating</b></a>
<br>
&nbsp;&nbsp;&nbsp;
<font size=-2>
@ -41,15 +41,15 @@ Use BOINC to develop resource-intensive applications
<br>
&nbsp;&nbsp;&nbsp;
<font size=-2>
Help debug and enhance the BOINC software.
Help debug and enhance BOINC software.
</font>
<br><br>
<a href=translations.php><b>Non-English pages about BOINC</b></a>
<a href=translations.php><b>Web resources</b></a>
<br>
&nbsp;&nbsp;&nbsp;
<font size=-2>
Translations of this web page.
BOINC-related sites in other languages
</font>
<br><br>

View File

@ -3,6 +3,7 @@ require_once("docutil.php");
page_head("Participating in BOINC projects");
echo "
<ul>
<li> <a href=projects.php>Choosing project(s)</a>
<li> <a href=host_requirements.php>System requirements</a>
<li> <a href=account.php>Joining a project</a>
<li> <a href=client.php>Running the BOINC client</a>

View File

@ -86,7 +86,7 @@ that recognizes when it's running on a 3DNow machine,
and branches to the appropriate code.
<p>
<h3>Web-site statistics breakdown by archicture</h3>
<h3>Web-site statistics breakdown by architecture</h3>
<p>
BOINC collects architecture details about each completed result
to allow detailed statistical breakdowns.
@ -111,7 +111,7 @@ For example, the application might pass a description like
&lt;graphics_board>ATI Rage 64MB</graphics_board>
</pre>
This makes it possible, for example, to report average or total
performance statistics for 3DNow hosts constrasted
performance statistics for 3DNow hosts contrasted
with other Intel-compatible hosts.

36
doc/projects.php Normal file
View File

@ -0,0 +1,36 @@
<?
require_once("docutil.php");
page_head("Choosing BOINC project(s)");
echo "
BOINC was originally developed to support SETI@home.
However, other distributed computing projects may use BOINC.
BOINC allows you to participate in multiple projects,
and to control how your resources are divided among these projects.
<p>
Projects are independent, and each maintains its own servers.
The BOINC developers and the University of California
have no control over the creation of BOINC-based projects,
and in general do not endorse them.
<p>
When you participate in a BOINC-based project,
you entrust that project with the health of your
computer and the privacy of its data.
In deciding whether to participate in a BOINC-based project,
you should consider the following questions:
<ul>
<li> Do you trust the project to ensure that their applications
are free of bugs that could damage your computer or cause security problems?
<li> Do you trust the project to use proper security practices on their servers?
<li> For what purposes will the project use your computer?
Does the project clearly state a limited range of purposes?
<li> Who owns the results of the computation?
If the results are valuable, will they be freely available to the public
or will they belong to a for-profit business?
</ul>
";
page_tail();
?>

View File

@ -51,9 +51,6 @@ list_item("output file info",
list_item("stderr",
"The stderr output of the computation"
);
list_item("host",
"The host that was sent the result."
);
list_item("received time",
"The time when the result was received."
);

32
doc/validate.php Normal file
View File

@ -0,0 +1,32 @@
<?
require_once("docutil.php");
page_head("Validation");
echo "
<p>
The XML document listing the output files has the form: <pre>
&lt;file_info>...&lt;/file_info>
[ ... ]
&lt;result>
&lt;name>foobar&lt;/name>
&lt;wu_name>blah&lt;/wu_name>
&lt;exit_status>blah&lt;/exit_status>
&lt;file_ref>...&lt;/file_ref>
[ ... ]
&lt;/result>
</pre>
The components are:
<ul>
<li> The <b>&lt;name></b> element is the result name.
<li> The <b>&lt;wu_name></b> element is the workunit name.
<li> Each <b>&lt;file_ref></b> element is an association to an
output file, described by a corresponding <b>&lt;file_info></b> element.
</ul>
<p>
The XML document describing the sizes and checksums of the output
files is just a list of <b>&lt;file_info></b> elements, with the
<b>nbytes</b> and <b>md5_cksum</b> fields present.
The project back end
must parse this field to find the locations and checksums of output files.
";
page_tail();
?>

View File

@ -29,7 +29,28 @@ list_item(
);
list_item(
"error mask",
"A bit mask of various error conditions (see below)"
"A bit mask of various error conditions:
<ul>
<li> <b>WU_ERROR_COULDNT_SEND_RESULT</b>:
The BOINC scheduler was unable to send the workunit
to a large number (~100) of hosts,
probably because its resource requirements (disk, memory, CPU)
were too large for the hosts,
or because no application version was available
for the hosts' platforms.
<li> <b>WU_ERROR_TOO_MANY_ERROR_RESULTS</b>:
Too many results with error conditions
(upload/download problem, client crashes)
have been returned for this work unit.
<li> <b>WU_ERROR_TOO_MANY_SUCCESS_RESULTS</b>:
Too many successful results have been returned
without a quorum being reached.
This indicates that the application may
be nondeterministic.
<li> <b>WU_ERROR_TOO_MANY_TOTAL_RESULTS</b>:
Too many total results have been sent for this workunit.
</ul>
"
);
list_end();
@ -43,7 +64,7 @@ list_item(
"An estimate of the average number of floating-point operations
required to complete the computation.
This used to estimate how long the computation will
take on a give host."
take on a given host."
);
list_item(
"rsc_fpops_bound",
@ -82,6 +103,10 @@ list_item(
a result to a client and receiving a reply.
The scheduler won't issue a result if the estimated
completion time exceeds this.
If the client doesn't respond within this interval,
the server 'gives up' on the result
and generates a new result, to be assigned to another client.
<p>
Set this to several times the average execution time
of a workunit on a typical PC.
If you set it too low,

View File

@ -6,7 +6,7 @@ bin_PROGRAMS = crypt_prog
EXTRA_PROGRAMS = md5_test shmem_test msg_test synch_test
noinst_LIBRARIES = libboinc.a
#libboinc_graphics.a
EXTRA_DIST = result_state.h
EXTRA_DIST = result_state.h parse.h std_fixes.h util.h
libboinc_a_SOURCES = \
../api/boinc_api.C \

View File

@ -18,6 +18,9 @@
//
// Revision History:
// $Log$
// Revision 1.32 2003/12/24 00:50:50 davea
// *** empty log message ***
//
// Revision 1.31 2003/12/01 23:28:46 korpela
// Fix for systems with no statvfs.h and statfs defined in sys/statfs.h
//
@ -333,6 +336,23 @@ int dir_size(const char* dirpath, double& size) {
return 0;
}
// on Windows: if fopen fails, and it's an open for write,
// try again in 3 seconds
// (since the file might be open by FastFind, Diskeeper etc.)
//
FILE* boinc_fopen(const char* path, const char* mode) {
FILE* f;
f = fopen(path, mode);
#ifdef _WIN32
if (!f && strchr(mode, 'r')) {
boinc_sleep(3.0);
f = fopen(path, mode);
}
#endif
return f;
}
int boinc_copy(const char* orig, const char* newf) {
#ifdef _WIN32
if(CopyFile(orig, newf, FALSE))

View File

@ -44,6 +44,7 @@ extern int file_delete(const char*);
extern int file_size(const char*, double&);
extern int clean_out_dir(const char*);
extern int dir_size(const char* dirpath, double&);
extern FILE* boinc_fopen(const char* path, const char* mode);
extern int boinc_copy(const char* orig, const char* newf);
extern int boinc_rename(const char* old, const char* newf);
extern int boinc_mkdir(const char*);