Categories
Archives
Category Archives: Elixir
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)