Use Semaphore to allow multiple outstanding put simultaneously.

RB=364338
R=si-dev,axu,osumampo,dhoa,zzhu,sihde
A=dhoa,zzhu