Google

Wednesday, October 27, 2004

[PROGRAMMING] Not encought license due to no tpterm for tpinit

[bugu ]
连续调用10次有不同的含义:比如,做一次tpinit(),然后连续调用10次service是连续调用10次;做一次tpinit(),调用一次 service,这样做10次,也是连续调用10次。但是,从lic的角度而言,这两种方式是不同的。tpinit()负责建立连接,tpterm()负责断开连接,一个tpinit()对应与一个lic,所以tpinit()与tpterm()是一对操作。如果使用前者的调用方式,同一时刻只占用了一个 lic;如果使用后者的并发调用方式,同一时刻占用了10了lic。所以,在做应用的时候,可以考虑客户端同时采用长连接与短连接两种方式。


[hanker1999]
tpterm ()只负责断开连接,不负责应用自己分配的内存的释放动作。所以,在tpterm()之前,必须用tpfree()释放那些用tpalloc分配的内存。当然,如果某buffer是用tpalloc()分配的,而你在tpreturn()中使用了此buffer,就不用再执行tpalloc()释放了。