2010-08-04 1 views
0

GSignal의 첫 번째 신호 처리기 콜백에서 추가 신호 처리기가 호출되지 않도록 방지하려면 어떻게해야합니까?GSignal에서 추가 등록 된 GCallbacks 로의 전파 방지

예를 들어, 동일한 신호 "mysignal"에 대해 func1, func2 및 func3의 세 가지 기능을 등록합니다. func1이 먼저 호출되면 func1에서 func2 및 func3을 호출하지 못하게하려면 어떻게해야합니까?

영구적이어서는 안됩니다. 런타임이어야합니다. 즉 func1은 func2와 func3이 얻은 입력 매개 변수를 기반으로 콜백을 가져올 수 있는지 여부를 결정할 수 있습니다.

답변

1

g_signal_stop_emission_by_name() 및 g_signal_stop_emission()이이 문제를 해결합니다.

func1에서 g_signal_stop_emission_by_name()을 호출하면 func2 및 func3으로 더 이상 전달되지 않습니다.