diff options
| -rw-r--r-- | tools/perf/builtin-record.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index ab333812ace6..9f98b86e747c 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c | |||
| @@ -497,13 +497,22 @@ static int __cmd_record(int argc, const char **argv) | |||
| 497 | if (target_pid == -1 && argc) { | 497 | if (target_pid == -1 && argc) { |
| 498 | pid = fork(); | 498 | pid = fork(); |
| 499 | if (pid < 0) | 499 | if (pid < 0) |
| 500 | perror("failed to fork"); | 500 | die("failed to fork"); |
| 501 | 501 | ||
| 502 | if (!pid) { | 502 | if (!pid) { |
| 503 | if (execvp(argv[0], (char **)argv)) { | 503 | if (execvp(argv[0], (char **)argv)) { |
| 504 | perror(argv[0]); | 504 | perror(argv[0]); |
| 505 | exit(-1); | 505 | exit(-1); |
| 506 | } | 506 | } |
| 507 | } else { | ||
| 508 | /* | ||
| 509 | * Wait a bit for the execv'ed child to appear | ||
| 510 | * and be updated in /proc | ||
| 511 | * FIXME: Do you know a less heuristical solution? | ||
| 512 | */ | ||
| 513 | usleep(1000); | ||
| 514 | event__synthesize_thread(pid, | ||
| 515 | process_synthesized_event); | ||
| 507 | } | 516 | } |
| 508 | 517 | ||
| 509 | child_pid = pid; | 518 | child_pid = pid; |
