Skip to content

MikeGitb/ObjectStore

Repository files navigation

SharedObjectStore

A header only library providing an object store whose objects can be shared among multiple threads

General idea:

  • An object is created in a pre-allocated area and paired with a refcount
  • The user gets a handle which allows modifications of that object, but the handle can't be copied (only moved)
  • Copying the handle (for sharing accross multiple threads) is only possible by turning the handle into a read_only handle - invalidating the original handle
  • Read only handles can be copied across multiple threads and as we know, that no one can modify the object, reading from it is safe
  • For each copy of the read_only handle, the refcount is increased by one
  • Turning a read only handle back into a mutable handle is only allowed if the refcount is 1 (i.e. we are the only one holding a handle to the object)
  • If all handles are destroyed, the object is destroyed, too.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy