- defmodule M do 
- 	defmacro with_timeout(params) do 
- 		quote do 
- 			return_to = self 
- 			pid = spawn_link(fn() -> 
- 				result = unquote(params[:do]) 
- 				send(return_to, {self, result}) 
- 			end) 
- 			receive( 
- 				do: ({^pid, result} -> result), 
- 				after: unquote(params[:after]) 
- 			) 
- 		end 
- 	end 
- end 
-   
- defmodule N do 
- 	import M 
-   
- 	with_timeout do 
- 	after 
- 	end 
-   
- 	with_timeout do 
- 		:timer.sleep(20) 
- 	after 
- 	end 
- end 
				ZGVmbW9kdWxlIE0gZG8KCWRlZm1hY3JvIHdpdGhfdGltZW91dChwYXJhbXMpIGRvCgkJcXVvdGUgZG8KCQkJcmV0dXJuX3RvID0gc2VsZgoJCQlwaWQgPSBzcGF3bl9saW5rKGZuKCkgLT4KCQkJCXJlc3VsdCA9IHVucXVvdGUocGFyYW1zWzpkb10pCgkJCQlzZW5kKHJldHVybl90bywge3NlbGYsIHJlc3VsdH0pCgkJCWVuZCkKCQkJcmVjZWl2ZSgKCQkJCWRvOiAoe15waWQsIHJlc3VsdH0gLT4gcmVzdWx0KSwKCQkJCWFmdGVyOiB1bnF1b3RlKHBhcmFtc1s6YWZ0ZXJdKQoJCQkpCgkJZW5kCgllbmQKZW5kCgpkZWZtb2R1bGUgTiBkbwoJaW1wb3J0IE0KCQoJd2l0aF90aW1lb3V0IGRvCgkJSU8ucHV0cygiQSIpCglhZnRlcgoJCTEwIC0+IElPLnB1dHMoInRpbWVvdXQiKQoJZW5kCgkKCXdpdGhfdGltZW91dCBkbwoJCTp0aW1lci5zbGVlcCgyMCkKCQlJTy5wdXRzKCJCIikKCWFmdGVyCgkJMTAgLT4gSU8ucHV0cygidGltZW91dCIpCgllbmQKZW5k