Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8217790

owstTaskTerminator::do_spin_master_work checks termination condition without lock

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • P4
    • None
    • 12, 13
    • hotspot
    • None
    • gc

    Description

      owstTaskTerminator.cpp

       156 if (exit_termination(tasks, terminator)) {
       157 MonitorLockerEx locker(_blocker, Mutex::_no_safepoint_check_flag);
       158 if (tasks >= _offered_termination - 1) {
       159 locker.notify_all();
       160 } else {
       161 for (; tasks > 1; tasks--) {
       162 locker.notify();
       163 }
       164 }
       165 _spin_master = NULL;
       166 return false;
       167 } else if (_offered_termination == _n_threads) {
       168 return true;
       169 }
       170 }

      Line 167, it checks termination without _blocker lock( _offer_termination is a shared variable).

      Attachments

        Issue Links

          Activity

            People

              zgu Zhengyu Gu
              zgu Zhengyu Gu
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: