背景:
阅读文章

destruct带来的BUG

[日期:2007-05-06] 来源:  作者:幽幽一猫无心细语 [字体: ]

MUD一个普遍存在的BUG
作者:文月  

升级MUD OS之后,在老的MUD OS中遇到的CRASH
系统的BUG总算体现出来了。  
 
我发现有个BUG大部分的MUD都存在,只是有的MUD没体现出来。BUG出现
在start_busy上,start_busy的参数中有两个是函数指针,最典型的就是dazuo & tuna命令了。一般而言,由于start_busy在不停地


 
  调用dazuo/tuna命令中的函数,这样dazuo/tuna并不会被自动destruct,
 
  但是有一种特殊情况就是当player正在打坐的时候而断线,一直到player重新连线进入的这段时间内,如果没有其他的PLAYER用到这个命令而
 
  导致该命令被自动destruct,这个时候,player重新连入,使用halt
 
  命令会调用到interrupt_me,interrupt_me则会调用已经被destrcu的
 
  命令内的函数在v21里,会导致crash,在v22里则体现为无心跳。此类bug在一些特殊的skill/skill's perform里也有可能碰到。
  
 最简单的解决办法就是将这些可能引起bug的程序中的inherit F_CLEAN_UP去掉。

  
  此外,如果要彻底解决这个问题(例如wizard使用update会导致同样的问题),
最好是在这些使用了用函数指针作为参数调用start_busy的程序内加上remove函数,例如dazuo,可以在其remove函数里寻找所有的正在打坐
的player并调用其interrupt_me函数。 

 

尊重作者 转载请注明出处52mud.com

收藏 推荐 打印 | 录入:sbso | 阅读:
相关内容      
本文评论   [发表评论]   全部评论 (0)
内容推送
52mud提供
一起回忆泥巴游戏QQ群68186072
52mud官方微信公众平台
热门评论