Commits

md_5 authored d6651bb0ea3
No longer necessary to synchronize sync events
No tags

src/main/java/org/bukkit/plugin/SimplePluginManager.java

Modified
499 499 HandlerList.unregisterAll();
500 500 fileAssociations.clear();
501 501 permissions.clear();
502 502 defaultPerms.get(true).clear();
503 503 defaultPerms.get(false).clear();
504 504 }
505 505 }
506 506
507 507 /**
508 508 * Calls an event with the given details.
509 - * <p>
510 - * This method only synchronizes when the event is not asynchronous.
511 509 *
512 510 * @param event Event details
513 511 */
514 512 @Override
515 513 public void callEvent(@NotNull Event event) {
516 514 if (event.isAsynchronous()) {
517 515 if (Thread.holdsLock(this)) {
518 516 throw new IllegalStateException(event.getEventName() + " cannot be triggered asynchronously from inside synchronized code.");
519 517 }
520 518 if (server.isPrimaryThread()) {
521 519 throw new IllegalStateException(event.getEventName() + " cannot be triggered asynchronously from primary server thread.");
522 520 }
523 - fireEvent(event);
524 521 } else {
525 522 if (!server.isPrimaryThread()) {
526 523 throw new IllegalStateException(event.getEventName() + " cannot be triggered asynchronously from another thread.");
527 524 }
528 - synchronized (this) {
529 - fireEvent(event);
530 - }
531 525 }
526 +
527 + fireEvent(event);
532 528 }
533 529
534 530 private void fireEvent(@NotNull Event event) {
535 531 HandlerList handlers = event.getHandlers();
536 532 RegisteredListener[] listeners = handlers.getRegisteredListeners();
537 533
538 534 for (RegisteredListener registration : listeners) {
539 535 if (!registration.getPlugin().isEnabled()) {
540 536 continue;
541 537 }

Everything looks good. We'll let you know here if there's anything you should know about.

Add shortcut