我在我目前工作的代码库中经常看到这种方式:
int obtained_number = 5;
char *answer = tpalloc(15);
sprintf(answer, "num:%d", obtained_number);
tpreturn(TPSUCCESS, 0, answer, answerSize, 0);
tpfree(answer);//why?
根据文档:
tpreturn() 的作用类似于 C 语言中的 return 语句(即,当调用 tpreturn() 时,服务例程返回到 BEA Tuxedo 系统调度程序)。
如果是这样,我猜该服务会在那时完成并且tpfree()
永远不会被调用。当再次调用该服务时,它会再次在 main 方法中启动,而不是上次执行完成的位置。
它是否正确?我应该报告这种不必要的使用tpfree()
吗?