362ac8b87e
This commit fixes a number of threading issues discovered in osc/pt2pt. This includes: - Lock the synchronization object not the module in osc_pt2pt_start. This fixes a race between the start function and processing post messages. - Always lock before calling cond_broadcast. Fixes a race between the waiting thread and signaling thread. - Make all atomically updated values volatile. - Make the module lock recursive to protect against some deadlock conditions. Will roll this back once the locks have been re-designed. - Mark incoming complete *after* completing an accumulate not before. This was causing an incorrect answer under certain conditions. Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov> |
||
---|---|---|
.. | ||
configure.m4 | ||
Makefile.am | ||
osc_pt2pt_active_target.c | ||
osc_pt2pt_comm.c | ||
osc_pt2pt_component.c | ||
osc_pt2pt_data_move.c | ||
osc_pt2pt_data_move.h | ||
osc_pt2pt_frag.c | ||
osc_pt2pt_frag.h | ||
osc_pt2pt_header.h | ||
osc_pt2pt_module.c | ||
osc_pt2pt_passive_target.c | ||
osc_pt2pt_pending_frag.h | ||
osc_pt2pt_request.c | ||
osc_pt2pt_request.h | ||
osc_pt2pt_sync.c | ||
osc_pt2pt_sync.h | ||
osc_pt2pt.h | ||
owner.txt |