Seven Concurrency Models in Seven Weeks : When Threads Unravel (9781680504668) by Butcher Paul

Seven Concurrency Models in Seven Weeks : When Threads Unravel (9781680504668) by Butcher Paul

Author:Butcher, Paul
Language: eng
Format: epub
Tags: Pragmatic Bookshelf
ISBN: 978-1-937785-65-9
Publisher: Oreilly & Associates Inc


​ send(:cache, {:get, self(), ref, url})

​ ​receive​ ​do​

​ {:ok, ^ref, page} -> page

​ ​end​

​ ​end​

​ ​def​ size ​do​

​ ref = make_ref()

​ send(:cache, {:size, self(), ref})

​ ​receive​ ​do​

​ {:ok, ^ref, s} -> s

​ ​end​

​ ​end​

​

​ ​def​ terminate ​do​

​ send(:cache, {:terminate})

​ ​end​

The put and terminate functions simply take their arguments, package them up as a tuple, and send them as a message. The get and size methods are slightly more complicated, since they both have to wait for a reply. In this case, they are sending a unique reference using the pattern we saw yesterday.

Here’s our actor in use:

​ iex(1)>​ Cache.start_link​



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.