Lines Matching defs:session

6 /** This module memorizes all opened files for a certain session. A session
8 * When a session is started, it will prefetch all files from an earlier
9 * session in order to speed up the launching or booting process.
182 bool Compare(KeyType key, ValueType* session) const
184 return (session->NodeRef().device == key.device
185 && session->NodeRef().node == key.node);
211 bool Compare(KeyType key, ValueType* session) const
213 return session->Team == key;
226 stop_session(Session *session)
228 if (session == NULL)
231 TRACE(("stop_session(%s)\n", session->Name()));
233 if (session->IsWorthSaving())
234 session->Save();
239 if (session->Team() >= B_OK)
240 sTeamHash->Remove(session);
242 if (session == sMainSession)
246 delete session;
256 Session *session = new Session(team, name, device, node, seconds);
257 if (session == NULL)
260 if (session->InitCheck() != B_OK || session->StartWatchingTeam() != B_OK) {
261 delete session;
265 // let's see if there is a prefetch session for this session
268 if (session->IsMainSession()) {
269 // search for session by name
274 // found session!
279 // ToDo: search for session by device/node ID
283 TRACE(("found prefetch session %s\n", prefetchSession->Name()));
288 sTeamHash->Insert(session);
290 session->Lock();
291 return session;
298 Session *session = (Session *)_session;
300 session->Lock();
301 stop_session(session);
349 Session *session = new Session(dirent->d_name);
351 if (session->LoadFromDirectory(dirfd(dir)) != B_OK) {
352 delete session;
356 if (session->IsMainSession()) {
357 session->Next() = sMainPrefetchSessions;
358 sMainPrefetchSessions = session;
360 sPrefetchHash->Insert(session);
389 mutex_init(&fLock, "launch speedup session");
401 TRACE(("start session %ld:%lld \"%s\", system_time: %lld, active until: %lld\n",
536 TRACE(("load session %s\n", Name()));
721 Session *session;
722 SessionGetter getter(team_get_current_team_id(), &session);
724 if (session == NULL) {
730 // create new session for this team
731 getter.New(name, device, node, &session);
734 if (session == NULL || !session->IsActive()) {
736 // ToDo: this opens a race condition with the "stop session" syscall
742 session->AddNode(device, node);
750 Session *session;
751 SessionGetter getter(team_get_current_team_id(), &session);
753 if (session == NULL)
757 session->RemoveNode(device, node);
815 Session *session = sTeamHash->Clear(true);
816 while (session != NULL) {
817 Session *next = session->next;
818 delete session;
819 session = next;
821 session = sPrefetchHash->Clear(true);
822 while (session != NULL) {
823 Session *next = session->next;
824 delete session;
825 session = next;
830 for (session = sMainPrefetchSessions; session != NULL; ) {
831 sMainPrefetchSessions = session->Next();
832 delete session;
833 session = sMainPrefetchSessions;
871 // start boot session