File: joinguard.cc

package info (click to toggle)
c%2B%2B-annotations 12.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 13,044 kB
  • sloc: cpp: 24,337; makefile: 1,517; ansic: 165; sh: 121; perl: 90
file content (25 lines) | stat: -rw-r--r-- 327 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include "joinguard.h"

void childActions();

void doSomeWork()
{
    throw std::runtime_error("doSomeWork throws");
}

void parent()
{
    JoinGuard{std::thread{childActions}};
    doSomeWork();
}

int main()
try
{
    parent();
}
catch (std::exception const &exc)
{
    std::cout << exc.what() << '\n';
}