public static void callEvent (final EventTable subject, final String name, final Object param) {
        if (!subject.hasEvent(name)) return;
        instance.eventRunner.perform(new Runnable() {
            public void run () {
                subject.callEvent(name, param);
                // callEvent handles its failures, so no catch here
            }
        });
    }
fires the specified event on the specified object in the event thread
main/src/main/java/cgeo/geocaching/wherigo/openwig/Engine.java