Fixed typo in .ruby-version.sample
Merge branch 'master' of github.com:jdantonio/concurrent-ruby
Wrote pending specs for Future#execute refactor
Implemented Future.execute and Future#execute
Removed superflous *args from Future.new
Updated Future documentation.
Implemented ScheduledTask.execute and ScheduledTask#execute
Updated ScheduledTask documentation
Future.new throws an exception when no block given, just like ScheduledTask.
Future and ScheduledTask both support Dereferenceable.
Fixed code indentation.
Updated documentation.
Fixed broken Future tests.
fixed: typo
less brittle Future spec
Consistent obligation state locking

State variable is now properly locked to ensure visibility and consistency under happens-before memory models.
It is guarded by the same mutex defined in dereferenceable.

Every class implementing Obligation has been changed according to the new locking policy.
Future with thread safe observers

Standard Ruby Observer module is not thread safe and it has been replaced with a thread safe observer set.
I preferred a copy-on-write set because I don't expect many observers to register, but we can add an option to the constructor to let the user choose the implementation
Future liveness fixed

Changed future spec to use an immediate executor in observers context
Added spec to show deadlock condition when an observer tries to access the future: this has been fixed using an open-call policy
Code duplication between future and scheduled task has been refactored pulling up common code into Obligation
Extracted safe task executor to remove further duplication
Fixed CopyOnWriteObserverSet locking policy
Obligation @reason is now properly guarded by mutex