Currently there is no synchronization that prevents me from reading/writing/disposing a buffer at the same time from multiple threads. This could lead to race conditions where we crash or get corrupt data based on timing of the system. We should add some synchronization primitives to have atomic read/write/dispose methods.