1. A computer controlled method to effectuate a garbage collection system, wherein the method comprises: pinning an object, wherein the object is unfixed in a heap memory, and wherein the pinning comprises adding the object to a list of thread-pinned objects associated with a thread-context; adding a pointer to the object in the list of thread-pinned objects, wherein the pointer references a first allocated memory region in the heap memory, wherein the memory region remains unfixed prior to tracing said thread-context; wherein tracing said thread-context occurs subsequent to adding said pointer but prior to removing said pointer from said list of thread-pinned objects, and tracing said thread-context further comprises: retrieving said pointer from said list of thread-pinned objects; and fixing said object to said first allocated memory region such that said object will not be relocated; removing said pointer from said list of thread-pinned objects after tracing said thread-context is complete; and releasing said object from said first allocated memory region whereby said object can be relocated by said garbage collection system to a second allocated memory region at a second memory location within said heap memory while said object is live.