ViewVC logotype

Log of /branches/arrexp_2137_win_merge/escript/test/SharedDataTestCase.cpp

Parent Directory Parent Directory | Revision Log Revision Log

Links to HEAD: (view) (annotate)
Sticky Revision:

Revision 2227 - (view) (annotate) - [select for diffs]
Modified Tue Jan 27 04:11:38 2009 UTC (11 years ago) by jfenwick
File length: 4782 byte(s)
Diff to previous 2224
Added BufferGroup, moved alloc/dealloc out of parallel sections.

Revision 2224 - (view) (annotate) - [select for diffs]
Modified Wed Jan 21 03:39:43 2009 UTC (11 years ago) by jfenwick
File length: 4741 byte(s)
Diff to previous 2222
Removed some old comments.
Renaming to RW/RO versions of methods continues.

Revision 2222 - (view) (annotate) - [select for diffs]
Modified Tue Jan 20 04:52:39 2009 UTC (11 years ago) by jfenwick
File length: 4733 byte(s)
Diff to previous 2213
Saving work

Revision 2213 - (view) (annotate) - [select for diffs]
Modified Wed Jan 14 00:23:39 2009 UTC (11 years ago) by jfenwick
File length: 4568 byte(s)
Diff to previous 2212
In preparation for merging to trunk

Revision 2212 - (view) (annotate) - [select for diffs]
Added Wed Jan 14 00:15:00 2009 UTC (11 years ago) by jfenwick
Original Path: branches/arrexp_2137_win/escript/test/SharedDataTestCase.cpp
File length: 4568 byte(s)
Executive summary:

This commit adds copy on write checks to operations involving shared data. 


new #defines:
Data.cpp has ASSIGNMENT_MEANS_DEEPCOPY (defaults to undefined).
Defining this will put the data = operator back to making deep copies instead
of sharing data (now the default.)

. Added exclusiveWrite method to copy the underlying data if it is shared.
. Some operators which took python objects now call the c++ versions intead of duplicating code.

DataAbstract and offspring:
. Added method to determine whether the data is currently shared.
. Added getVectorRO to children of DataReady.
. Added getTagRO.

. Operations which modify values in place (or return modifiable pointers) now use
a macro to check for sharing. In the case where a modification attempt is detected, it throws an exception. In the future, I will enable this only for debugging.

. This shold not really have been required but the compiler was not choosing the use the const version as I would have liked. Besides, this makes things explict.

. Moved (and de-inlined) getVector in DataConstant (It was virtual in a parent class).

Unit tests:
Added both python and c++ unit tests to check known cases of sharing and "inplace"
modification operations.

Removed some commented out code.

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

  ViewVC Help
Powered by ViewVC 1.1.26