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

Function pidVirt_ProcessProcSelfTask

src/plugin/pid/pid.cpp:159–182  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

157}
158
159static void
160pidVirt_ProcessProcSelfTask(DmtcpEventData_t *data)
161{
162 if (!Util::strStartsWith(data->virtualToRealPath.path, PROC_PREFIX)) {
163 return;
164 }
165
166 char *ptr = strstr(data->virtualToRealPath.path, PROC_TASK_TOKEN);
167 if (ptr == nullptr) {
168 return;
169 }
170
171 char *rest = nullptr;
172 char *tidStr = ptr + PROC_TASK_TOKEN_LEN;
173
174 pid_t virtualTid = strtol(tidStr, &rest, 0);
175 if (virtualTid > 0) {
176 char buf[PATH_MAX - 20];
177 strncpy(buf, rest, PATH_MAX - 20);
178 pid_t realTid = VIRTUAL_TO_REAL_PID(virtualTid);
179 JASSERT(20+strlen(buf) < PATH_MAX); // Reserve char[20] for realTid, below.
180 snprintf(tidStr, PATH_MAX, "%d%s", realTid, buf);
181 }
182}
183
184// FIXME: This function needs third argument newpathsize, or assume PATH_MAX
185static void

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected