If you have an object, you use the dot operator (.)
If you have a pointer, you use the arrow operator (->)
1 2 3 4 5 6 7 8 9
struct Pool { ... };
struct Pool obj; // <- an object
obj.lock = whatever; // <- access with the dot
struct Pool* ptr = /*point to something*/; // <- a pointer
ptr->lock = whatever; //<- access with the arrow