[root] / trunk / core / base / src / TProcessID.cxx Repository:
ViewVC logotype

Log of /trunk/core/base/src/TProcessID.cxx

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 48798 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 1 21:04:47 2013 UTC (22 months, 3 weeks ago) by pcanal
File length: 12679 byte(s)
Diff to previous 40584
Import revision 48797 from the v5-34-00 patch branch:
Avoid silent failure when reaching the maximum amount of TRef.  When a
TProcessID is full (has seen 16777215 objects), we switch to new one TProcessID
(maximum 65535 including the TProcessIDs read from file).  TRefArray can not
switch to new TProcessID if they already contain objects.

Some of the new warning/errors:

Warning in <TRefArray::AddAtAndExpand>: The ProcessID for the 0x5f83819e8 has been switched to ProcessID4/6c89f37e-8259-11e2-9717-166ee183beef:4

Error in <TRefArray::AddAtAndExpand>: The object at %p can not be registered in the process the TRefArray points to (pid = ProcessID4/6c89f37e-8259-11e2-9717-166ee183beef) because the ProcessID has too many objects and the TRefArray already contains other objecs.


Warning in <TProcessID::AddProcessID>: Maximum number of TProcessID (65535) is almost reached (one left).  TRef will stop being functional when the limit is reached.
....
Fatal in <TProcessID::AddProcessID>: Maximum number of TProcessID (65535) has been reached.  TRef are not longer functional.

Revision 40584 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Aug 14 02:56:29 2011 UTC (3 years, 5 months ago) by pcanal
File length: 10842 byte(s)
Diff to previous 35949
Apply to TRefArray::operator[] and TRefArray::At the same protection as in revision 5761 for TRef::GetObject
to protect against the case where fPID points to
a deleted processID using the new function TProcessID::IsValid.
In TProcessID::Cleanup, set fgPIDs to zero to avoid using the array after its deletion;
use this information in TProcessID::IsValid.
This fixes the issues 84017 an 84018 in Savannah.

Revision 35949 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Sep 30 16:11:21 2010 UTC (4 years, 3 months ago) by brun
File length: 10794 byte(s)
Diff to previous 35102
use snprintf

Revision 35102 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 1 09:10:30 2010 UTC (4 years, 4 months ago) by brun
File length: 10790 byte(s)
Diff to previous 26606
Fix typo in the documentation

Revision 26606 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 2 20:36:09 2008 UTC (6 years, 1 month ago) by pcanal
File length: 10790 byte(s)
Diff to previous 23058
Following Igor Smirnov analysis fix several memory leaks, add checks for null pointer dereference, fix or add copy constructor and assignment operator when applicable, make the copy constructor and assignment operator private when the objects are not intended to be copiable.

Revision 23058 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Apr 8 21:59:51 2008 UTC (6 years, 9 months ago) by pcanal
File length: 11218 byte(s)
Diff to previous 22961
Add new (conveninence) function TProcessID::GetProcessWithUID(TObject*)

Revision 22961 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 3 13:32:57 2008 UTC (6 years, 9 months ago) by rdm
File length: 10885 byte(s)
Diff to previous 20877
move the directories:
  base clib cont meta metautils newdelete pcre rint thread unix utils
  winnt zip
under the new core meta directory.

Revision 20877 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:17:07 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/base/src/TProcessID.cxx
File length: 10885 byte(s)
Diff to previous 19826
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/base/src/TProcessID.cxx
File length: 10885 byte(s)
Diff to previous 19825
imported svn:keywords Id property

Revision 19825 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:49:10 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/base/src/TProcessID.cxx
File length: 10938 byte(s)
Diff to previous 19619
remove :$ from tag line

Revision 19619 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Aug 13 17:27:54 2007 UTC (7 years, 5 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 10948 byte(s)
Diff to previous 17506
From Axel and Gordon Watts:
Move the code in TProcessID::CheckInit from inline to the implementation file.

Revision 17506 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jan 25 11:49:33 2007 UTC (8 years ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 10542 byte(s)
Diff to previous 17306
 -Remove the static functions: ReadProcessID and WriteProcessID.
  These two functions have been moved to TVirtualIO and TFileIO.
 -Implement new functions;
    void   CheckInit()
    static TProcessID  *GetPID();
    static TObjArray   *GetPIDs();

With these changes TProcessID is now independent of the I/O sub-system.

Revision 17306 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 12 16:03:17 2007 UTC (8 years ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 12838 byte(s)
Diff to previous 16507
   TMath::Abs, TMath::Min, TMath::Max, TMath::Sign, TMath::Range
These functions are unfortunately not defined in a standard way in std::

This include is referenced by a new version of TMath.h.
As a result, TMath.h is back compatible with the previous version.

TMathBase.h is used in place of TMath.h in all the classes
that will go into the future miniCore library.
TMath.h and the TMath implementation will go into a new math sub-directory.

TString.h uses TMathBase.h instead of TMath.h.
As a result, it was necessary to include "TMath.h" in some classes
assuming that TMath was included via TString and using other functions
than the ones defined in TMathBase.h
 ----------------------------------------------------------------------

Revision 16507 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Oct 11 10:26:23 2006 UTC (8 years, 3 months ago) by rdm
Original Path: trunk/base/src/TProcessID.cxx
File length: 12839 byte(s)
Diff to previous 14781
From Federico:
fixes for the -effc++ g++ option.

Revision 14781 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 20 18:49:43 2006 UTC (8 years, 9 months ago) by pcanal
Original Path: trunk/base/src/TProcessID.cxx
File length: 12606 byte(s)
Diff to previous 13258
add protection aginast null pointer

Revision 13258 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 16 20:11:59 2005 UTC (9 years, 2 months ago) by pcanal
Original Path: trunk/base/src/TProcessID.cxx
File length: 12640 byte(s)
Diff to previous 12128
White spaces and comments update

Revision 12128 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Jun 23 06:24:27 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 12544 byte(s)
Diff to previous 12123
From Constantin Loizides
Use global Mutex instead of class static member

Revision 12123 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 22 20:18:12 2005 UTC (9 years, 7 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 12568 byte(s)
Diff to previous 11348
From Constantin Loizides

This patch implements:
- decentralized, automatic mutex initialization,
  see R__LOCKGUARD2 in TVirtualMutex
- PROOF parallel startup fixes
- more thread protection (in base, cont, meta, rest to be done)
- cleanups

From Eddy Offermann:
TString::Atoi and Atof are made const.

Revision 11348 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Mar 15 22:13:17 2005 UTC (9 years, 10 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 12284 byte(s)
Diff to previous 11001
From Philippe:
When the number of processIds is greater than 255 and an address
is re-used, we should not issue an error, just update the pids
registered in fObjPIDs.

Revision 11001 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 28 05:45:41 2005 UTC (9 years, 11 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 12040 byte(s)
Diff to previous 7017
From Philippe:
This patch solved a problem due to the fact that TObject's fUniqueID can
only hold a 8 bits ProccessID identifier (in addition to storing a 24 bits
object ID).  However we support 65535 distinct ProcsssID identifiers per
file.  Before this patch, for a file containing more than 255 distcint
ProcessID, the
TRef using the later ProcessID would be unable to find their references.

Specifically, fUniqueID can now store the ProcessID indentifier 0 through
254.  When more identifiers
are used, then instead of store the identifier in the 8 higher bit of
fUniqueID we store in a table (TProcessID::fgObjPIDs) linking addresses to
pids.

Revision 7017 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 29 19:27:09 2003 UTC (11 years, 5 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 11175 byte(s)
Diff to previous 6988
From Philippe:
Protection added in TProcessID::ReadProcessID in case the TObjArray fObjects
had been deleted by a previous erroneous call to TFile::Close("R")

Revision 6988 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 22 16:08:36 2003 UTC (11 years, 6 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 11100 byte(s)
Diff to previous 6474
Implement new function TProcessID::Clear.
 // delete the TObjArray pointing to referenced objects
 // this function is called by TFile::Close("R")

Revision 6474 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Apr 21 11:08:08 2003 UTC (11 years, 9 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 10812 byte(s)
Diff to previous 5827
In TProcessID::ReadProcessID, do not return null if file=0 and pidf=0,
but return the current processID. This case may happen when cloning
an object.

Revision 5827 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Dec 18 08:07:29 2002 UTC (12 years, 1 month ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 10732 byte(s)
Diff to previous 5538
Change TProcessID::IsValid to support the case where the argument is a TProcessUUID.

Revision 5538 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 5 09:37:10 2002 UTC (12 years, 2 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 10403 byte(s)
Diff to previous 5522
Fix from Bill Tanenbaum in TProcessID::WriteProcessID.
  In TProcessID::WriteProcessID(TProcessID*, TFile *), the statement
     pids->Add(pid);
  must be replaced by
     pids->AddAtAndExpand(pid,npids);

The reason is that there may be a slot where the stored pid is NULL,
and Add() will incorrectly add it at the first such slot, if any, rather
than at the end of the TObjArray, where it belongs.

Revision 5522 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Oct 31 21:38:36 2002 UTC (12 years, 2 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 10386 byte(s)
Diff to previous 5114
From Philippe:
Add a missing IncrementCount when the processID object is being reused.

Revision 5114 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Aug 12 06:20:13 2002 UTC (12 years, 5 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 10360 byte(s)
Diff to previous 4895
Fix by Bill Tanenbaum
 An off-by-one error caused core dumps until I found and fixed
it.

        In TProcessID::GetObjectWithID(UInt_t uidd), the line:

        if (uid > fObjects->GetSize()) return 0;

        is incorrect, and must be replaced by

        if (uid >= fObjects->GetSize()) return 0;

        This is a critical fix.  The subscripts start at O, so if uid is equal
to the size, it returns whatever is one past the end of the array.

Revision 4895 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jul 13 16:19:26 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 10359 byte(s)
Diff to previous 4862
Patch from Philippe:
Whenever a container is added to the list of Cleanups it should either
        a) Have it kMustCleanup bit set
        b) Be remove by hand from the list of Cleanups when being
deleted.
The consequence of NOT doing that is that after its deletion the next
deletion of the next object with kMustCleanup on will fails (core dumps
when trying to access the above mentioned container in the cleanups
list).

Revision 4862 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Jul 9 21:12:17 2002 UTC (12 years, 6 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 10312 byte(s)
Diff to previous 4565
Add comments referencing TProcessUUID

Revision 4565 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat May 18 08:43:30 2002 UTC (12 years, 8 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 10214 byte(s)
Diff to previous 4490
Add explicit calls to the base classes copy constructors in the copy constructors.
This is required by gcc on MacOS X

Revision 4490 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 9 08:09:35 2002 UTC (12 years, 8 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 10200 byte(s)
Diff to previous 4282
Fix a problem in TProcessID::WriteProcessID. The line testing for
an already existing process was not correct.
Thanks to Dirk Geppert for reporting the problem.

Revision 4282 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Apr 1 17:19:13 2002 UTC (12 years, 9 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 10184 byte(s)
Diff to previous 3845
Several changes in the handling of TRef to support the following use case:
An array of objects is written to a file but the TRefs
referencing these objects are not written to the file.
In a next session, these objects are read in memory
and new TRefs point to these objects and are written
to a separate file. In a third session both files
are connected.
To get this scenario working, one must use a dummy TRef
set to all objects that can be referenced in the next session.

Revision 3845 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Feb 3 16:13:40 2002 UTC (12 years, 11 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 9151 byte(s)
Diff to previous 3497
Add new static function GetSessionProcessID return the current
session TProcessID.

Rewrite the function ReadProcessID in order to store the right pid
in the list of the files pids in case the pid is already existing
in other files.

Revision 3497 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Dec 18 18:25:55 2001 UTC (13 years, 1 month ago) by rdm
Original Path: trunk/base/src/TProcessID.cxx
File length: 8894 byte(s)
Diff to previous 3368
correct description of what TProcessID's title is made of (a TUUID).

Revision 3368 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Dec 3 10:29:13 2001 UTC (13 years, 1 month ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 8950 byte(s)
Diff to previous 3346
Modify the procedure to find and register a TProcessID in the
global list of ProcessIDs..

Revision 3346 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Dec 2 15:11:32 2001 UTC (13 years, 1 month ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 8795 byte(s)
Diff to previous 3294
Many functions previously in TRef moved to TProcessID.
The first time a referenced or referencing object is written to a file,
the corresponding TProcessID is also written.
The ObjectCounter fgNumber also moved to TProcessID.

Revision 3294 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Nov 28 14:47:03 2001 UTC (13 years, 1 month ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 6087 byte(s)
Diff to previous 3260
Backward incompatible change of TProcessID. The new version supports
the new versions of TRef and TRefArray.
Instead of using a TExMap to store the pointers to the referenced objects,
a simple and faster TObjArray is created. Each array element points directly
to the referenced object. The array index corresponds to the fUniqueID
of the referenced object.

Revision 3260 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 20 09:32:54 2001 UTC (13 years, 2 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 5520 byte(s)
Diff to previous 2985
Move comments such that the description is visible in the html and src.html files.

Revision 2985 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Oct 5 16:27:56 2001 UTC (13 years, 3 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 5870 byte(s)
Diff to previous 2961
Change logic to test if an object is referenced

Revision 2961 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Oct 3 16:43:18 2001 UTC (13 years, 3 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 5804 byte(s)
Diff to previous 2924
Rename class TObjectRef to TRef.
We are about to introduce a new class TRefArray (an array of references).

Revision 2924 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Oct 1 17:01:47 2001 UTC (13 years, 3 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 5822 byte(s)
Diff to previous 2914
Use new class TUUID to identify the current process.

Revision 2914 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Oct 1 14:15:51 2001 UTC (13 years, 3 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 5908 byte(s)
Diff to previous 2904
Remove unused variable isNew

Revision 2904 - (view) (download) (as text) (annotate) - [select for diffs]
Added Mon Oct 1 10:29:08 2001 UTC (13 years, 3 months ago) by brun
Original Path: trunk/base/src/TProcessID.cxx
File length: 5955 byte(s)
Two new classes to support Persistent Reference pointers.
See long comments in these two classes.

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9