access private data by offset
This pull requests changes the access to private data by using the private offset, just as the C-headers do. To prevent race-conditions when reading offset, the offset are stored in a AtomicUsize. It is calculated on first usage.