cs205-lecture-examples

Example codes used during Harvard CS205 lectures
git clone https://git.0xfab.ch/cs205-lecture-examples.git
Log | Files | Refs | README | LICENSE

counter.cpp (450B)


      1 #include <iostream>
      2 
      3 // DISCLAIMER: this code contains a race condition
      4 class Counter
      5 {
      6 public:
      7     Counter() : count_(0) {}
      8 
      9     void increment() { ++count_; }
     10     unsigned int get_count() const { return count_; }
     11 
     12 private:
     13     unsigned int count_;
     14 };
     15 
     16 int main(void)
     17 {
     18     Counter counter;
     19 #pragma omp parallel for
     20     for (int i = 0; i < 100; ++i) {
     21         counter.increment();
     22     }
     23     std::cout << counter.get_count() << '\n';
     24     return 0;
     25 }