Skip to content

Instantly share code, notes, and snippets.

@asterite
Created January 29, 2015 02:50
Show Gist options
  • Save asterite/7d2da9d866176f039add to your computer and use it in GitHub Desktop.
Save asterite/7d2da9d866176f039add to your computer and use it in GitHub Desktop.
struct ThreadSafe(T)
def initialize(@obj : T)
@mutex = Mutex.new
end
macro method_missing(name, args, block)
@mutex.synchronize do
@obj.{{name.id}}({{*args}}) {{block}}
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment