Trickle messages

Trickle messages let applications communicate with the server during the execution of a workunit. That are intended for applications that have long work units (multiple days). Typical uses of this mechanism:

Trickle messages are asynchronous and unreliable. A trickle message may not be delivered immediately after it is generated by the application. If additional trickle messages are generated during the interval, only the last one will be sent. Thus, the content of trickle messages should be cumulative rather than incremental.

Implementation

boinc_trickle() creates a file 'trickle' in the slot directory (overwriting any existing file of that name) and signals the core client via shared memory. When the core client gets this signal, or when the application exits, it moves the file from 'slot/trickle' to 'project/trickle_resultid_time'.

When the core client sends an RPC to a server, it scans the project directory for trickle files and includes them in the request. On successful RPC completion it deletes the trickle files. "; page_tail(); ?>