第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

首席質(zhì)量:處理西格特姆/西格布特

首席質(zhì)量:處理西格特姆/西格布特

Go
臨摹微笑 2022-09-12 20:34:25
我稱之為在許多地方使用斷言的c庫(kù)。這對(duì)我來(lái)說(shuō)是一個(gè)問(wèn)題,因?yàn)槲也幌M业膽?yīng)用程序在斷言失敗時(shí)終止。設(shè)置標(biāo)志以禁用斷言無(wú)濟(jì)于事,因?yàn)樗粫?huì)導(dǎo)致一個(gè) segfault。NDEBUG這是我到目前為止所得到的,但SIGTERM沒(méi)有被抓住。// Redefine the MPE_Assert macro to use SIGTERM since SIGABRT cannot be stopped.// #include <signal.h>// #define MPE_Assert(_Expression) (void) ((!!(_Expression)) || (raise(SIGTERM)))import "C"func Poly2Tri(verts [][2]float32, holes [][][2]float32) [][2]float32 {    sig := make(chan os.Signal, 10)    result := make(chan [][2]float32)    defer signal.Stop(sig)    go func() {        // Notify for all signals        signal.Notify(sig)        result <- poly2Tri(verts, holes)    }()    select {    case res := <-result:        return res    case <-sig:        return [][2]float32{}    }}那么,如何允許庫(kù)在斷言失敗時(shí)退出,但允許我的應(yīng)用程序繼續(xù)?我不認(rèn)為該函數(shù)與此問(wèn)題相關(guān),但如果需要,我可以添加它。poly2Tri
查看完整描述

1 回答

?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊

可以處理和使用信號(hào)。在本機(jī) Go 代碼中通知或在 C 中調(diào)用(可能通過(guò) cgo 調(diào)用設(shè)置)。SIGTERMSIGABRT

但是,a 或處理程序不應(yīng)阻止進(jìn)程終止 — 它可以盡一切努力進(jìn)行日志記錄(也許是為了幫助調(diào)試),或者刷新中間輸出(以減少丟失的工作量),但一般來(lái)說(shuō),失敗可能表明程序以某種方式嚴(yán)重?fù)p壞 — 如果它繼續(xù)運(yùn)行,它可能會(huì)產(chǎn)生任意錯(cuò)誤的輸出(例如,由于內(nèi)存損壞), 或 segfault(因?yàn)槌绦虿幌M{(diào)用返回),或死鎖(因?yàn)?指示鎖定不變量已損壞)。SIGTERMSIGABRTassertassertassert

如果程序遇到故障時(shí)遇到問(wèn)題,而不是嘗試捕獲和抑制這些故障,則尋找重現(xiàn)這些故障的方法(例如,通過(guò)模糊測(cè)試程序的輸入,或記錄程序在發(fā)生故障之前正在執(zhí)行的操作的跟蹤)可能會(huì)更有效率。然后,您可以修復(fù)失敗的根本原因,并且無(wú)需嘗試從中恢復(fù)。assertassert


查看完整回答
反對(duì) 回復(fù) 2022-09-12
  • 1 回答
  • 0 關(guān)注
  • 80 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)