does cuCtxPushCurrent / cuCtxPopCurrent enforce implicit syncronization?

I’m using 2 cuda contexts in the same application (same thread).
one is the primary context used for various calculations, and the other one is manually created for nvenc use.

without having a call to cudaDeviceSynchronize, I got wired issues and error in bout contexts.

I’m using push & pop whenever im using the non primary context.

this make me wonder, does cuCtxPushCurrent enforce the primary context to finish all its jobs?
does cuCtxPopCurrent enforce the other context to finish all its jobs?