hotspot/src/share/vm/runtime/synchronizer.cpp
changeset 33148 68fa8b6c4340
parent 33105 294e48b4f704
child 33595 5830c3ae532d
equal deleted inserted replaced
33146:77349b58b4c0 33148:68fa8b6c4340
    49 // Need to inhibit inlining for older versions of GCC to avoid build-time failures
    49 // Need to inhibit inlining for older versions of GCC to avoid build-time failures
    50   #define NOINLINE __attribute__((noinline))
    50   #define NOINLINE __attribute__((noinline))
    51 #else
    51 #else
    52   #define NOINLINE
    52   #define NOINLINE
    53 #endif
    53 #endif
    54 
       
    55 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
       
    56 
    54 
    57 // The "core" versions of monitor enter and exit reside in this file.
    55 // The "core" versions of monitor enter and exit reside in this file.
    58 // The interpreter and compilers contain specialized transliterated
    56 // The interpreter and compilers contain specialized transliterated
    59 // variants of the enter-exit fast-path operations.  See i486.ad fast_lock(),
    57 // variants of the enter-exit fast-path operations.  See i486.ad fast_lock(),
    60 // for instance.  If you make changes here, make sure to modify the
    58 // for instance.  If you make changes here, make sure to modify the
  1415       TEVENT(Inflate: overwrite stacklock);
  1413       TEVENT(Inflate: overwrite stacklock);
  1416       if (TraceMonitorInflation) {
  1414       if (TraceMonitorInflation) {
  1417         if (object->is_instance()) {
  1415         if (object->is_instance()) {
  1418           ResourceMark rm;
  1416           ResourceMark rm;
  1419           tty->print_cr("Inflating object " INTPTR_FORMAT " , mark " INTPTR_FORMAT " , type %s",
  1417           tty->print_cr("Inflating object " INTPTR_FORMAT " , mark " INTPTR_FORMAT " , type %s",
  1420                         (void *) object, (intptr_t) object->mark(),
  1418                         p2i(object), p2i(object->mark()),
  1421                         object->klass()->external_name());
  1419                         object->klass()->external_name());
  1422         }
  1420         }
  1423       }
  1421       }
  1424       return m;
  1422       return m;
  1425     }
  1423     }
  1463     TEVENT(Inflate: overwrite neutral);
  1461     TEVENT(Inflate: overwrite neutral);
  1464     if (TraceMonitorInflation) {
  1462     if (TraceMonitorInflation) {
  1465       if (object->is_instance()) {
  1463       if (object->is_instance()) {
  1466         ResourceMark rm;
  1464         ResourceMark rm;
  1467         tty->print_cr("Inflating object " INTPTR_FORMAT " , mark " INTPTR_FORMAT " , type %s",
  1465         tty->print_cr("Inflating object " INTPTR_FORMAT " , mark " INTPTR_FORMAT " , type %s",
  1468                       (void *) object, (intptr_t) object->mark(),
  1466                       p2i(object), p2i(object->mark()),
  1469                       object->klass()->external_name());
  1467                       object->klass()->external_name());
  1470       }
  1468       }
  1471     }
  1469     }
  1472     return m;
  1470     return m;
  1473   }
  1471   }
  1527     TEVENT(deflate_idle_monitors - scavenge1);
  1525     TEVENT(deflate_idle_monitors - scavenge1);
  1528     if (TraceMonitorInflation) {
  1526     if (TraceMonitorInflation) {
  1529       if (obj->is_instance()) {
  1527       if (obj->is_instance()) {
  1530         ResourceMark rm;
  1528         ResourceMark rm;
  1531         tty->print_cr("Deflating object " INTPTR_FORMAT " , mark " INTPTR_FORMAT " , type %s",
  1529         tty->print_cr("Deflating object " INTPTR_FORMAT " , mark " INTPTR_FORMAT " , type %s",
  1532                       (void *) obj, (intptr_t) obj->mark(), obj->klass()->external_name());
  1530                       p2i(obj), p2i(obj->mark()), obj->klass()->external_name());
  1533       }
  1531       }
  1534     }
  1532     }
  1535 
  1533 
  1536     // Restore the header back to obj
  1534     // Restore the header back to obj
  1537     obj->release_set_mark(mid->header());
  1535     obj->release_set_mark(mid->header());
  1702         Handle obj((oop) mid->object());
  1700         Handle obj((oop) mid->object());
  1703         tty->print("INFO: unexpected locked object:");
  1701         tty->print("INFO: unexpected locked object:");
  1704         javaVFrame::print_locked_object_class_name(tty, obj, "locked");
  1702         javaVFrame::print_locked_object_class_name(tty, obj, "locked");
  1705         fatal("exiting JavaThread=" INTPTR_FORMAT
  1703         fatal("exiting JavaThread=" INTPTR_FORMAT
  1706               " unexpectedly owns ObjectMonitor=" INTPTR_FORMAT,
  1704               " unexpectedly owns ObjectMonitor=" INTPTR_FORMAT,
  1707               THREAD, mid);
  1705               p2i(THREAD), p2i(mid));
  1708       }
  1706       }
  1709       (void)mid->complete_exit(CHECK);
  1707       (void)mid->complete_exit(CHECK);
  1710     }
  1708     }
  1711   }
  1709   }
  1712 };
  1710 };