关于TScreen::TDataModule没有互斥,在Datasnap中引出的BUG

原创 2012年03月23日 15:49:28

Datasnap中的TDSServerModule是继承于TDataModule,TDSServerModule实例的Destory,没有做互斥


destructor TDSServerModuleBase.Destroy;
begin
  //TDataModule
  if OldCreateOrder then DoDestroy;
  if Assigned(RemoveDataModule) then
    RemoveDataModule(Self);
  //TComponent
  Destroying;
  RemoveFreeNotifications;
  DestroyComponents;
  // TPersistent
  RemoveFixups(Self);
  //TProviderDataModule
  CleanProviders;
end;


 RemoveDataModule(Self);

解决方法:

对全局的Classes.RemoveDataModule的函数重新赋值自己写的RemoveDataModuleFix,并在函数内互斥

procedure TDataModuleFix.RemoveDataModuleFix(DataModule: TDataModule);
begin
  GlobalNameSpace.BeginWrite;
  try
    g_SaveRemoveDataModule(DataModule);
  finally
    GlobalNameSpace.EndWrite;
  end;
end;





            
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

由sscanf用错引出bug,总结下sscanf用法

1、我使用sscanf犯下的错误 先看下代码:

由栈帧结构引出的一个小bug

上一篇已经谈过在C语言的函数调用过程中函数栈帧结构的变化,对于栈帧结构变化不清楚的可以去找上一篇文章(链接地址:http://blog.csdn.net/chenkaixin_1024/article...

jbpm4.4 email没有验证bug解决

  • 2012-02-02 10:47
  • 1.06MB
  • 下载

多层数据库应用基于Delphi DataSnap方法调用的实现(四)BLOB字段的读写

[转]多层数据库应用基于Delphi DataSnap方法调用的实现(四)BLOB字段的读写 数据库的BLOB字段,可以用来保存字节流数据,比如图片、声音文件、html文档和大文...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)