VOID GetAnswerToRequest(const TSVNCacheRequest* pRequest, TSVNCacheResponse* pReply, DWORD* pResponseLength) { CTSVNPath path; *pResponseLength = 0; if(pRequest->flags & TSVNCACHE_FLAGS_FOLDERISKNOWN) { path.SetFromWin(pRequest->path, !!(pRequest->flags & TSVNCACHE_FLAGS_ISFOLDER)); } else { path.SetFromWin(pRequest->path); } CAutoReadWeakLock readLock(CSVNStatusCache::Instance().GetGuard(), 2000); if (readLock.IsAcquired()) { CTraceToOutputDebugString::Instance()(_T(__FUNCTION__) L": app asked for status of %s\n", pRequest->path); CSVNStatusCache::Instance().GetStatusForPath(path, pRequest->flags, false).BuildCacheResponse(*pReply, *pResponseLength); } else { CTraceToOutputDebugString::Instance()(_T(__FUNCTION__) L": timeout for asked status of %s\n", pRequest->path); CStatusCacheEntry entry; entry.BuildCacheResponse(*pReply, *pResponseLength); } }
VOID GetAnswerToRequest(const TGITCacheRequest* pRequest, TGITCacheResponse* pReply, DWORD* pResponseLength) { CTGitPath path; *pResponseLength = 0; if(pRequest->flags & TGITCACHE_FLAGS_FOLDERISKNOWN) { path.SetFromWin(pRequest->path, !!(pRequest->flags & TGITCACHE_FLAGS_ISFOLDER)); } else { path.SetFromWin(pRequest->path); } CAutoReadWeakLock readLock(CGitStatusCache::Instance().GetGuard(), 2000); if (readLock.IsAcquired()) { CGitStatusCache::Instance().GetStatusForPath(path, pRequest->flags, false).BuildCacheResponse(*pReply, *pResponseLength); } else { CStatusCacheEntry entry; entry.BuildCacheResponse(*pReply, *pResponseLength); } }
VOID GetAnswerToRequest(const TGITCacheRequest* pRequest, TGITCacheResponse* pReply, DWORD* pResponseLength) { CTGitPath path; *pResponseLength = 0; if(pRequest->flags & TGITCACHE_FLAGS_FOLDERISKNOWN) { path.SetFromWin(pRequest->path, !!(pRequest->flags & TGITCACHE_FLAGS_ISFOLDER)); } else { path.SetFromWin(pRequest->path); } if (CGitStatusCache::Instance().WaitToRead(2000)) { CGitStatusCache::Instance().GetStatusForPath(path, pRequest->flags, false).BuildCacheResponse(*pReply, *pResponseLength); CGitStatusCache::Instance().Done(); } else { CStatusCacheEntry entry; entry.BuildCacheResponse(*pReply, *pResponseLength); } }