| 663 | } |
| 664 | |
| 665 | int |
| 666 | createNewConnectionBeforeFork(string& progname) |
| 667 | { |
| 668 | struct sockaddr_storage addr; |
| 669 | uint32_t len; |
| 670 | SharedData::getCoordAddr((struct sockaddr *)&addr, &len); |
| 671 | socklen_t addrlen = len; |
| 672 | int sock = jalib::JClientSocket((struct sockaddr *)&addr, addrlen); |
| 673 | JASSERT(sock != -1); |
| 674 | |
| 675 | DmtcpMessage hello_local(DMT_NEW_WORKER); |
| 676 | DmtcpMessage hello_remote = sendRecvHandshake(sock, hello_local, progname); |
| 677 | JASSERT(hello_remote.virtualPid != -1); |
| 678 | |
| 679 | if (dmtcp_virtual_to_real_pid) { |
| 680 | JTRACE("Got virtual pid from coordinator") (hello_remote.virtualPid); |
| 681 | pid_t pid = getpid(); |
| 682 | pid_t realPid = dmtcp_virtual_to_real_pid(pid); |
| 683 | Util::setVirtualPidEnvVar(hello_remote.virtualPid, 0, pid, realPid); |
| 684 | } |
| 685 | return sock; |
| 686 | } |
| 687 | |
| 688 | void |
| 689 | connectToCoordOnRestart(CoordinatorMode mode, |
no test coverage detected