Changeset 3186 in Sophya for trunk/SophyaProg


Ignore:
Timestamp:
Feb 20, 2007, 5:02:11 PM (19 years ago)
Author:
ansari
Message:

economie memoire zthr.cc (sync/syncp) , Reza 20/02/2007

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaProg/Tests/zthr.cc

    r3185 r3186  
    9696// Structure de gestion utilisee par la classe MTVecPool
    9797typedef struct {
    98   TVector<int_8> vv;
    9998  bool busy;
    10099  int stat;
     
    115114    _nth = nth;
    116115    _vsz = vsz;
     116    TVector<int_8> xx(2);
     117    for(int k=0; k<nth; k++) _vecp.push_back(xx);
    117118    cout << "-- MTVecPool(nth=" << nth << ")" << endl;
    118119    _vmx.Show();
     
    128129      St_VecPool stv;
    129130      idx = _vecs.size();
    130       stv.vv = _vmx.Column(idx);
     131      _vecp[tid].Share(_vmx.Column(idx));
    131132      stv.busy = true;
    132133      stv.stat = 0;
     
    134135      mex.unlock();
    135136      //DBG cout << "DBG-GetVecP(tid= " << tid << ") -> Idx=" << idx << " VecSz=" << &(_vecs[idx].vv) << endl;
    136       return (&(_vecs[idx].vv));
     137      return (&(_vecp[tid]));
    137138    }
    138139    else {
     
    148149        }
    149150        if (found) {
     151          _vecp[tid].Share(_vmx.Column(idx));
    150152          mex.unlock();
    151153          //DBG  cout << "DBG-GetVecP(tid= " << tid << ") -> nv=" << hex << rv << dec << endl;
    152           return (&(_vecs[idx].vv));
     154          return (&(_vecp[tid]));
    153155        }
    154156        else {
     
    168170      St_VecPool stv;
    169171      idx = _vecs.size();
    170       stv.vv = _vmx.Column(idx);
    171172      stv.busy = true;
    172173      stv.stat = 0;
     
    174175      mex.unlock();
    175176      //DBG cout << "DBG-GetVec(tid= " << tid << ") -> Idx=" << idx << " VecSz=" << &(_vecs[idx].vv) << endl;
    176       return (_vecs[idx].vv);
     177      return (_vmx.Column(idx));
    177178    }
    178179    else {
     
    190191          mex.unlock();
    191192          //DBG  cout << "DBG-GetVec(tid= " << tid << ") -> nv=" << hex << rv << dec << endl;
    192           return (_vecs[idx].vv);
     193          return (_vmx.Column(idx));
    193194        }
    194195        else {
     
    224225        nerr++;
    225226      }
    226       _vecs[k].vv -= sum;
    227       _vecs[k].vv.MinMax(min, max);
     227      _vmx.Column(k) -= sum;
     228      _vmx.Column(k).MinMax(min, max);
    228229      if ((min!=0) || (max!=0)) {
    229230        cout << " Check()/Pb vec[k=" << k << "] != (sum=" << sum << ")" << endl;
     
    242243  TMatrix<int_8> _vmx;
    243244  vector< St_VecPool> _vecs;
     245  vector< TVector<int_8> > _vecp;
    244246};
    245247
Note: See TracChangeset for help on using the changeset viewer.