1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
í³Ôdc@szddlZddlZddlmZdefd„ƒYZdejfd„ƒYZd„ZedkrveƒndS(    iÿÿÿÿN(terrortPoolObjcBs#eZd„Zd„Zd„ZRS(cCs t|_dS(N(tFalsetAlloc(tself((s!.\\ServersRoute\Common\ObjPool.pyt__init__scCs ||_dS(N(R(RtisAlloc((s!.\\ServersRoute\Common\ObjPool.pyt
setIsAllocscCs|jS(N(R(R((s!.\\ServersRoute\Common\ObjPool.pyRs(t__name__t
__module__RRR(((s!.\\ServersRoute\Common\ObjPool.pyRs        tObjPoolcBsJeZd„Zed„Zd„Zd„Zd„Zd„Zd„Z    RS(cKs<tjj|ƒyddl}Wntk
r?ddl}nX|d|_|jdƒp_g|_t|ddƒ|_    |d|_
d|_ t |jt ƒsÙtjdtjd|jt fƒ}tj|ƒdS|jƒ|_gt|j    ƒD]}t|j|jƒ^qø|_g|_|jj|jƒdS(    Niÿÿÿÿt    classnametargstinitSizeit increaseSizeRs%s must be subclass of %s(t    SingletonRt    threadingt ImportErrortdummy_threadingt_ObjPool__objClsNametgett_ObjPool__objArgstmaxt_ObjPool__initSizet_ObjPool__increaseSizet_ObjPool__allocCntt
issubclassRRt    formatMsgt
ERROR_NO_7tmylogtLockt_ObjPool__emptyObjsLocktxrangetapplyt_ObjPool__emptyObjst_ObjPool__objPooltextend(RtkwargsRtmsgti((s!.\\ServersRoute\Common\ObjPool.pyRs$       % 4    cCs|jjƒt|jƒdkrF|s9|jjƒdS|jƒnt|jƒdkrl|jjƒdS|jjdƒ}|jƒrÊt    j
dt    j dt |ƒƒ}t j    |ƒ|jjƒdS|jtƒ|jd7_|jjƒt jdt |ƒƒ|S(NiRsunclean obj id = %s found!isobject id = %s(RtacquiretlenR"treleasetNonet_ObjPool__extend_listtpopRRRt
ERROR_NO_8tidRRtTrueRtdebug(Rt autoIncreasetemptyObjR&((s!.\\ServersRoute\Common\ObjPool.pytalloc4s(     "    cCs­|jjƒ|jƒsYtjdtjdt|ƒƒ}tj|ƒ|jjƒdS|j    t
ƒ|j j |ƒ|j d8_ |jjƒtjdt|ƒƒdS(NRsInvild obj id = %s found!isobject id = %s(RR(RRRt
ERROR_NO_9R/RR*RRR"tappendRR1(RtobjR&((s!.\\ServersRoute\Common\ObjPool.pytfreeJs  "    cCs t|jƒS(N(R)R#(R((s!.\\ServersRoute\Common\ObjPool.pytcountWscCs!||jƒkrdS|j|S(N(R9R+R#(Rtindex((s!.\\ServersRoute\Common\ObjPool.pytatZscCs|jS(N(R(R((s!.\\ServersRoute\Common\ObjPool.pyt getAllocCnt_scCsitjd|jƒgt|jƒD]}t|j|jƒ^q$}|jj|ƒ|j    j|ƒdS(Nsincrease size = %s(
RtinfoRR R!RRR"R$R#(RR't
extendList((s!.\\ServersRoute\Common\ObjPool.pyt __extend_listbs1(
RR    RR0R4R8R9R;R<R,(((s!.\\ServersRoute\Common\ObjPool.pyR
s                      cCs‡ddlm}ddl}|jdƒtd|jddddƒ}d    t|ƒGHtd|jdddd
ƒ}d t|ƒGHdS( Niÿÿÿÿ(t
MMORPGPacks ObjPool.logR R i
Risid(pool1) = %sisid(pool2) = %s(tProtocolR@Rt    InitMyLogR
t MMORPGPacketR/(R@Rtpool1tpool2((s!.\\ServersRoute\Common\ObjPool.pyttesths  t__main__(    RRtDBCommonRtobjectRR
RFR(((s!.\\ServersRoute\Common\ObjPool.pyt<module>
s  
P