In this lesson, we turn our attention to management. Jennifer is trying out some productivity techniques in her office. Right now, she’s implementing Pomodoro. We use core.async to sequence it.
Parts of courses on specific topics
We saw how to take with a timeout. But how do you put with a timeout? If a channel is full, a put will block or park until it is empty. If that never happens, your code will never complete. core.async can do this as well.
In this lesson, the assembly line is shaping up. Now Jennifer is trying to make it more efficient. We begin looking at it at a high level and eliminating wasted work.
In this lesson, we refactor the Pomodoro code by allowing us to turn asynchronous processes into synchronous ones.
core.async lets us do things to play with time that we otherwise would have a lot of trouble with. One thing we might want is to request a value that is always current.
When you need many go blocks to start work at very close to the same time, you can use a *start latch*. This pattern preps go blocks and signals them to start with the same channel.