Author Archives: David Sulc

OTP 21 introduces handle_continue callback to GenServer

When using GenServers, it is sometimes necessary to perform long-running code during the initialization. The common pattern for handling this is to send a message to self() from within the init callback, and then perform the long-running work within the handle_info function for … Continue reading

Posted in Elixir | Comments Off on OTP 21 introduces handle_continue callback to GenServer

PoolToy: A (toy) process pool manager in Elixir 1.6 (part 2.3)

Starting pools (This post is part of a series on writing a process pool manager in Elixir.) Previously, we got pretty excited about the possibility of starting multiple pools, only to have our dreams crushed by bleak reality. Here’s a … Continue reading

Posted in Elixir | Comments Off on PoolToy: A (toy) process pool manager in Elixir 1.6 (part 2.3)

PoolToy: A (toy) process pool manager in Elixir 1.6 (part 2.2)

Implementing multiple pools (This post is part of a series on writing a process pool manager in Elixir.) In the last post, we did  most of the work enabling us to have multiple pools within PoolToy. But before we jump … Continue reading

Posted in Elixir | Comments Off on PoolToy: A (toy) process pool manager in Elixir 1.6 (part 2.2)

PoolToy: A (toy) process pool manager in Elixir 1.6 (part 2.1)

Preparing for multiple pools (This post is part of a series on writing a process pool manager in Elixir.) When we left each other after last post, we had a working single pool that looked something like this: The thing … Continue reading

Posted in Elixir | Comments Off on PoolToy: A (toy) process pool manager in Elixir 1.6 (part 2.1)

PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.9)

Managing a single pool (continued) (This post is part of a series on writing a process pool manager in Elixir.) Figuring out the shenanigans Let’s get on the same page (after last post) as to what is happening when we … Continue reading

Posted in Elixir | Comments Off on PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.9)

PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.8)

Managing a single pool (continued) (This post is part of a series on writing a process pool manager in Elixir.) First, let’s point out the problem in our current pool design as we left after last post: our pool manager’s … Continue reading

Posted in Elixir | Comments Off on PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.8)

PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.7)

Managing a single pool (continued) (This post is part of a series on writing a process pool manager in Elixir.) We’ve now realized (in last post) that storing the references to the client monitors in a map was a bit … Continue reading

Posted in Elixir | Comments Off on PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.7)

PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.6)

Managing a single pool (continued) (This post is part of a series on writing a process pool manager in Elixir.) So we’ve got a working pool we can check worker processes in/out of (previous post). However, we’re not handling dying … Continue reading

Posted in Elixir | Comments Off on PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.6)

PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.5)

Managing a single pool (continued) (This post is part of a series on writing a process pool manager in Elixir.) After last post, we’ve got a pretty fancy-looking pool: Unfortunately, we don’t have any sort of mechanism to make use … Continue reading

Posted in Elixir | Comments Off on PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.5)

PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.4)

Managing a single pool (continued) (This post is part of a series on writing a process pool manager in Elixir.) After the last part, we’ve made some headway but still need some workers: More useful state Let’s start by enhancing … Continue reading

Posted in Elixir | Comments Off on PoolToy: A (toy) process pool manager in Elixir 1.6 (part 1.4)