If you're developing applications in .NET, you probably heard about all the new shiny part of the framework, like Pipelines which enable you to process IO-related processing with more IO awareness, still leaving your code on quite high level. Another part of the framework that is mentioned recently are channels that are used to pass … Continue reading Channels, ring buffers and logs
concurrency
Epoch based programming
Human beings like categorizing things. Categories make things simpler, much easier to grasp. The same is applied to events when we assign them to a specific epoch or a period of our history. Can we use epochs in computer systems and programming? Would they be useful? Would they make things more complex or simpler? Let's … Continue reading Epoch based programming
Task, Async Await, ValueTask, IValueTaskSource and how to keep your sanity in modern .NET world
Why are they still working on the whole async-await thing? What is Task, Async Await, ValueTask, IValueTaskSource ? How to keep your sanity in modern .NET world?
Concurrent conditional deletes
TL;DR Sometimes System.Collections.Concurrent provide not enough methods to squeeze the top performance out of them. Below you can find a small extension method that will make your life easier in some cases Concurrent dictionary The concurrent dictionary provides a lot of useful methods. You can TryAdd, AddOrUpdate. Additionally, you can use TryUpdate which provides a … Continue reading Concurrent conditional deletes
Concurrency – ramp up your skills
Yesterday, I gave my Extreme Concurrency talk at rg-dev user group. After the talk I had some really interesting discussions and was asked to provide some resources in the low level concurrency I was talking about. So here's the list of books, talks and blog posts that can help you to ramp up your skills … Continue reading Concurrency – ramp up your skills
Producer – consumer relationship
In the last post about the RampUp library I covered on of the foundations: IRingBuffer. Now I'd like to describe the contract it fulfills. Producer consumer If you take a look at the IRingBuffer you'll see Write/Read methods. These two are responsible for producing/consuming or writing/reading messages to the buffer in FIFO way. What are … Continue reading Producer – consumer relationship