st0u;
#endif
                    } else {
                v->item.type = T_STRING;
                if (target_row) {
                v->item.subtype = STRING_MALLOC;
                v->item.u.string = string_copy(target_row, "MySQL_fetch");
                } else {
                v->item.subtype = STRING_CONSTANT;
                v->item.u.string = "";
                }
                    }
            break;

        default:
            v->item = const0u;
            break;
    }
    最后是time()不跑的问题
    在driver里面,有个变量current_time标示时间
    每次心跳时、会current_time++
    心跳的触发要看backend.c 186行左右 heart_beat_flag的标志变量
    heart_beat_flag为1才会出发
    heart_beat_flag 置1、是通过
    backend.c-> call_haert_beat()
    391行左右
    signal(SIGALRM, sigalrm_handler);
    ualarm(HEARTBEAT_INTERVAL, 0);
    到时触发函数sigalrm_handler()heart_beat_flag 置1
    在v22.2b14中ualarm没有调用成功、没有设置时钟、就不触发函数sigalrm_handler()
  心跳会停掉
    原因是ualarm.c文件#include "std.h"放的位置不正确
    因为 #ifndef HAS_UALARM 且 std.h里定义了HAS_UALARM 所以放到 #ifndef HAS_UALARM前
    就不会编译ualarm.c文件、就掉不到ualarm()
    应该将#include "std.h"放到 #ifndef HAS_UALARM 之后

上一页
返回列表
返回首页
©2024 MUD游戏网_文字mud 电脑版
Powered by iwms