Log of /trunk/core/base/src/TProcessID.cxx
Parent Directory
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
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
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
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
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
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
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
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
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
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.
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.