MCPcopy Create free account
hub / github.com/dmtcp/dmtcp / pid_event_hook

Function pid_event_hook

src/plugin/pid/pid.cpp:310–372  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

308}
309
310static void
311pid_event_hook(DmtcpEvent_t event, DmtcpEventData_t *data)
312{
313 switch (event) {
314 case DMTCP_EVENT_INIT:
315 SharedData::setPidMap(getpid(), _real_getpid());
316 exitedChildTids = new vector<pid_t>();
317 dmtcp_pthread_set_tid(pthread_self(), getpid());
318 break;
319
320 case DMTCP_EVENT_ATFORK_PREPARE:
321 pidVirt_atfork_prepare();
322 break;
323
324 case DMTCP_EVENT_ATFORK_CHILD:
325 case DMTCP_EVENT_VFORK_CHILD:
326 pidVirt_atfork_child();
327 break;
328
329 case DMTCP_EVENT_VFORK_PREPARE:
330 pidVirt_vfork_prepare();
331 break;
332
333 case DMTCP_EVENT_PRE_EXEC:
334 pidVirt_PrepareForExec(data);
335 break;
336
337 case DMTCP_EVENT_POST_EXEC:
338 pidVirt_PostExec(data);
339 break;
340
341 case DMTCP_EVENT_PTHREAD_RETURN:
342 case DMTCP_EVENT_PTHREAD_EXIT:
343 pidVirt_ThreadExit(data);
344 break;
345
346 case DMTCP_EVENT_REAL_TO_VIRTUAL_PATH:
347 pid_real_to_virtual_filepath(data);
348 break;
349
350 case DMTCP_EVENT_VIRTUAL_TO_REAL_PATH:
351 pid_virtual_to_real_filepath(data);
352 break;
353
354 case DMTCP_EVENT_PRESUSPEND:
355 break;
356
357 case DMTCP_EVENT_PRECHECKPOINT:
358 removeExitedChildTids();
359 break;
360
361 case DMTCP_EVENT_RESUME:
362 break;
363
364 case DMTCP_EVENT_RESTART:
365 pidVirt_PostRestart();
366 restartInProgress = false;
367 break;

Callers

nothing calls this directly

Calls 13

dmtcp_pthread_set_tidFunction · 0.85
pidVirt_atfork_prepareFunction · 0.85
pidVirt_atfork_childFunction · 0.85
pidVirt_vfork_prepareFunction · 0.85
pidVirt_PrepareForExecFunction · 0.85
pidVirt_PostExecFunction · 0.85
pidVirt_ThreadExitFunction · 0.85
removeExitedChildTidsFunction · 0.85
pidVirt_PostRestartFunction · 0.85
getpidFunction · 0.70

Tested by

no test coverage detected