Subversion Repositories cctools

[/] [branches/] - Rev 2675

Rev

Filtering Options

Rev Log message Author Age Path
2675 Remove experimental branch. Changes are being integrated piecemeal into
Hierarchical WQ.
pdonnel3 70d 23h /branches/
2674 Removing merged branch. pdonnel3 70d 23h /branches/
2672 svn merge trunk@2659" target="_blank">file:///afs/nd.edu/user37/ccl/svn/cctools/trunk@2659 trunk@HEAD" target="_blank">file:///afs/nd.edu/user37/ccl/svn/cctools/trunk@HEAD . pdonnel3 71d 00h /branches/
2666 $ svn merge trunk@2659" target="_blank">file:///afs/nd.edu/user37/ccl/svn/cctools/trunk@2659 trunk@HEAD" target="_blank">file:///afs/nd.edu/user37/ccl/svn/cctools/trunk@HEAD . pdonnel3 71d 17h /branches/
2665 Correct some compiler warnings. pdonnel3 71d 17h /branches/
2664 fixing some warnings bkokoszk 72d 04h /branches/
2663 removing references to searchent.h functions bkokoszk 72d 04h /branches/
2659 svn merge trunk@2327" target="_blank">file:///afs/nd.edu/user37/ccl/svn/cctools/trunk@2327 trunk@HEAD" target="_blank">file:///afs/nd.edu/user37/ccl/svn/cctools/trunk@HEAD . pdonnel3 74d 18h /branches/
2628 Changes already in trunk. btovar 84d 06h /branches/
2604 command line flag for artificial RPC latency bkokoszk 90d 05h /branches/
2591 cleaning up parrot search bkokoszk 94d 21h /branches/
2577 Comments to struct dag.

Update branch to trunk 2576.
btovar 98d 23h /branches/
2567 This patch does:
o Removes pipe + output file for work_queue_worker. Instead we use a
regular file and let the worker write to that. This alleviates the need to
poll on output files to flush the pipe if the worker is writing a lot of
stdout.
o It corrects a race condition in checking a task status and sleeping on
the server link. The way to do this is block receipt of SIGCHLD and only
allow delivery right before/during a poll on the master link. There is a
race condition described in "Advanced Programming in the UNIX Environment"
section 10.16 (sigsuspend) where a it's not possible to block receipt of
a signal until the system call starts (except for sigsuspend). This is
makes handling select difficult. [Ironically enough, this has come up
recently in commit r2561.] I have formed a workaround solution which
uses signal long jmps to allow us to catch the signal if it occurs
before the select system call is called:

pselect:
int result;
env <- setjmp
if (signal handler jmps here) {
result = -1;
errno = EINTR;
goto cleanup;
}
set custom SIGCHLD handler which longjmps, save old one
UNBLOCK SIGCHLD
result = select(...)
cleanup:
BLOCK SIGCHLD
restore old SIGCHLD handler
queue SIGCHLD signal (so old SIGCHLD handler can catch it)
UNBLOCK SIGCHLD
/* old SIGCHLD handler will immediately run */
return result;

So, basically if SIGCHLD is received between unblocking SIGCHLD and select, or
inside select, the signal handler longjmps, sets errno to EINTR, and returns.

Before I wrote this, I didn't know pselect() existed. A future change could use
that instead of this complicated signal hackery.
pdonnel3 101d 19h /branches/
2562 Branch for WQ Worker Output Optimizations. pdonnel3 102d 21h /branches/
2550 Update to trunk r2549. btovar 104d 03h /branches/
2523 Merge to trunk 2522 btovar 105d 21h /branches/
2508 Started separating the parser from the dag logic. All functions
dag_parse_* now have as first argument a dag_parse structure that
does the bookeeping (current dag, open file, linenum, etc.).
Parse related fields were removed from struct dag.

dag_readline is now dag_parse_readline

(Also, commit includes merge from trunk r2507)
btovar 109d 04h /branches/
2503 Merged trunk r2502 btovar 110d 20h /branches/
2502 Makeflow comments. btovar 110d 21h /branches/
2500 Continue compiling with --pedantic-errors. btovar 110d 22h /branches/

1 2 Next >

Show All