-
Notifications
You must be signed in to change notification settings - Fork 494
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle k_EMsgDestJobFailed #171
Comments
So the behavior I'm seeing in steamclient regarding DestJobFailed is in bool CJob::BYieldingWaitForMsg( IMsgNetPacket **ppNetPacket )
{
JobMsgInfo_t *pJobMsgInfo; // [sp+18h] [bp-10h]@5
if ( !this->m_szYieldReason )
{
SetYieldInfo( "Wait for msg", NULL );
}
if ( GetJobMgr().BYieldingWaitForMsg( this, ppNetPacket, &pJobMsgInfo ) )
{
while ( pJobMsgInfo->m_EMsg == k_EMsgJobHeartbeat )
{
m_STimeNextHeartbeat.SetFromServerTime( k_cMicroSecJobHeartbeat );
SetYieldInfo( "Wait for msg", NULL );
if ( !GetJobMgr().BYieldingWaitForMsg( this, ppNetPacket, &pJobMsgInfo) )
return false;
}
AddPacketToList( ppNetPacket, pJobMsgInfo->m_JobIDSource );
return pJobMsgInfo->m_EMsg != k_EMsgDestJobFailed;
}
return false;
} Essentially, This doesn't really translate well to callbacks, but could probably be handled gracefully with the existing work in #170. |
Oh, so that's where it is. Some Jobs also use this one (Hopper pseudocode here), which seems more appropriate for our usage:
|
This is now handled for async jobs, but not for callback subscriptions. I'm not sure what's the best way to handle this. The best I can think of is to use the same pattern used by Steamworks, where you can subscribe to a callback with The other option I can think of is to get consumers to use async jobs instead of callbacks. |
Proof of concept:
Only using
MsgClientJustStrings
as a placeholder. Actual response seems to have a 1-byte body, so far I've only seen it set to0x00
.Not sure how this would work with #170.
The text was updated successfully, but these errors were encountered: