IsReady Pattern

While back, I found something like following code from production and quite a bit surprised. IsReady or IsDirty function is very frequently called from main thread which enters a lock to check a shared boolean value. Yes, it was before C++11 and we didn’t have common framework for async task... [Read More]
Tags: lock-free, multithreading, volatile

Guild Wars and Lock-free Programming

In the latest CppCast from Tony Van Eerd , Tony was talking about lock-free programming and amazingly I had almost same experience. It was already more than 10 years ago. In 2006 time around we released Guild Wars Faction, I developed my own memory allocator based on Maged Michael’s algorithms... [Read More]
Tags: guildwars, lock-free

QPI Quiescence

This is sort of note to myself. Here is a good article that I found while ago QPI Quiescence from Dave Dice. Again this makes me feel multi-processor or multi-core CPU like a networked system. See this article. Also the article mentioned Atomic CAS is more than 3 times expensive... [Read More]
Tags: cpu, lock-free

Broken Stack Guard Page

This week, I updated my Broken Guard Page project that includes couple of demo programs. Last demo shows how a malicious program can cause very obscure access violation of other process by just reading the memory of the other process. This is one of the examples that how modern software... [Read More]
Tags: cpp, debugging

Starting my blog, finally.

Today is the last day of year 2016 or new year’s eve 2017. I’m officially starting my blog here just before 2016 is gone forever. It’s something I’ve been trying to do many years ago. [Read More]
Tags: blog