using gevent 1.1rc4 os x 10.11 python 2.7.10 (and others)
the greenlet.join method doesn't block, so you can't ever guarantee stuff gets done...
this would be a gevent issue, except it works fine with the same interpreter from the CLI... example code:
#code starts here
from gevent import monkey, Greenlet, hub
hub.Hub.resolver_class = ['gevent.resolver_ares.Resolver']
print "done like a good script"
if __name__ == '__main__':
g = gevent.spawn(sleepy,10)
print "if this is the only log line, then join didn't work"