fork(1) download
  1. #include <iostream>
  2. #include <cstdbool>
  3. #include <unistd.h>
  4. #include <pthread.h>
  5.  
  6. class Timer{
  7. private:
  8. bool run;
  9.  
  10. public:
  11. void start();
  12. void stop();
  13. void print();
  14.  
  15. };
  16.  
  17. void Timer::start(){
  18. this->run = true;
  19. this->print();
  20. return;
  21. }
  22.  
  23. void Timer::stop(){
  24. this->run = false;
  25. return;
  26. }
  27.  
  28. void Timer::print(){
  29.  
  30. int counter = 0;
  31.  
  32. while(this->run == true){
  33.  
  34. std::cout << counter << std::endl;
  35. counter++;
  36.  
  37. usleep(500000);
  38. }
  39.  
  40. return;
  41. }
  42.  
  43. void *handler(void *argument){
  44.  
  45. ((Timer *) argument)->start();
  46.  
  47. return argument;
  48. }
  49.  
  50. int main(void){
  51.  
  52. Timer *timer = new Timer();
  53. pthread_t timer_thread;
  54. int mainCounter = 0;
  55.  
  56. pthread_create(&timer_thread, NULL, handler, (void *) &timer);
  57.  
  58. while(true){
  59.  
  60. if(mainCounter == 100){
  61. std::cout << "Stopping..." << std::endl;
  62. timer->stop();
  63. }
  64.  
  65. std::cout << " => " << mainCounter << std::endl;
  66. mainCounter++;
  67.  
  68. usleep(50000);
  69. }
  70.  
  71. return 0;
  72. }
  73.  
  74.  
Time limit exceeded #stdin #stdout 5s 17288KB
stdin
Standard input is empty
stdout
 => 0
0
 => 1
 => 2
 => 3
 => 4
 => 5
 => 6
 => 7
 => 8
 => 9
1
 => 10
 => 11
 => 12
 => 13
 => 14
 => 15
 => 16
 => 17
 => 18
 => 19
2
 => 20
 => 21
 => 22
 => 23
 => 24
 => 25
 => 26
 => 27
 => 28
 => 29
3
 => 30
 => 31
 => 32
 => 33
 => 34
 => 35
 => 36
 => 37
 => 38
 => 39
4
 => 40
 => 41
 => 42
 => 43
 => 44
 => 45
 => 46
 => 47
 => 48
 => 49
5
 => 50
 => 51
 => 52
 => 53
 => 54
 => 55
 => 56
 => 57
 => 58
 => 59
6
 => 60
 => 61
 => 62
 => 63
 => 64
 => 65
 => 66
 => 67
 => 68
 => 69
7
 => 70
 => 71
 => 72
 => 73
 => 74
 => 75
 => 76
 => 77
 => 78
 => 79
8
 => 80
 => 81
 => 82
 => 83
 => 84
 => 85
 => 86
 => 87
 => 88
 => 89
9
 => 90
 => 91
 => 92
 => 93
 => 94
 => 95
 => 96
 => 97
 => 98
 => 99
10
Stopping...
 => 100
 => 101
 => 102
 => 103
 => 104
 => 105
 => 106
 => 107
 => 108
 => 109
11
 => 110
 => 111
 => 112
 => 113
 => 114
 => 115
 => 116
 => 117
 => 118
 => 119
12
 => 120
 => 121
 => 122
 => 123
 => 124
 => 125
 => 126
 => 127
 => 128
 => 129
13
 => 130
 => 131
 => 132
 => 133
 => 134
 => 135
 => 136
 => 137
 => 138
 => 139
14
 => 140
 => 141
 => 142
 => 143
 => 144
 => 145
 => 146
 => 147
 => 148
 => 149
15
 => 150
 => 151
 => 152
 => 153
 => 154
 => 155
 => 156
 => 157
 => 158
 => 159
16
 => 160
 => 161
 => 162
 => 163
 => 164
 => 165
 => 166
 => 167
 => 168
 => 169
17
 => 170
 => 171
 => 172
 => 173
 => 174
 => 175
 => 176
 => 177
 => 178
 => 179
18
 => 180
 => 181
 => 182
 => 183
 => 184
 => 185
 => 186
 => 187
 => 188
 => 189
19
 => 190
 => 191
 => 192
 => 193
 => 194
 => 195
 => 196
 => 197
 => 198
 => 199
20
 => 200
 => 201
 => 202
 => 203
 => 204
 => 205
 => 206
 => 207