C++ coroutine tutorial

I’ve been experimenting with coroutines recently and I found that information on C++ coroutines are very difficult to find. I’m planning to write a series of C++ coroutine blogs on how to use C++ coroutines, how they work, and how to write your own library that uses C++ coroutines. My last post Basic Concepts are…


Writing your own lock-free reader/writer lock

It is sort of puzzling for me why C++ standard doesn’t have a implementation of reader/writer lock. So just like every other C++ developer, I’ve decided to roll my own.  A typical implementation might be using semaphore / mutex. However, this has a major disadvantage that it requires entering a lock mutex every time a…


Sharing .NET generic code under the hood

If you come from a C++ programming background, you are most likely already familiar with C++’s template code bloat problem. Each template instantiation gets its own copy of the code (of course, compiler/linker can optimize by throwing away unused methods). The reason being that C++ template are more like C macro on steriods. I know…


C# value type boxing under the hood

I recently had some really interesting discussion with a .NET typesystem expert in the team, and during the conversation he had pointed out an interesting aspect of .NET value type boxing when using constraints. Intrigued by that discussion, I decided to take a further look. See the full article here in my new blog yizhang82.me  


Moving my blog to GitHub pages – http://yizhang82.me

I haven’t posted in a good while – it’s because I’ve been busy working on .NET native! Now that things has settled down for a bit, I’ve decided to resume writing posts. After spending some time thinking, I’ve decided that I prefer writing my blog posts in plain text/markdown and working on Git repos, rather…