Changeset 25fe907 in git for Singular/blackbox.cc


Ignore:
Timestamp:
Jan 24, 2019, 1:07:07 PM (5 years ago)
Author:
Reimer Behrends <behrends@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
a3f0feac28fd347ce5b5d091108f9128d7b13554
Parents:
d0c48800963359deb121c3d103d17df80ba21b8e
Message:
Necessary changes for multi-threading.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/blackbox.cc

    rd0c488 r25fe907  
    1010// #define BLACKBOX_DEVEL 1
    1111
    12 static blackbox* blackboxTable[MAX_BB_TYPES];
    13 static char *    blackboxName[MAX_BB_TYPES];
    14 static int blackboxTableCnt=0;
     12GLOBAL_VAR static blackbox* blackboxTable[MAX_BB_TYPES];
     13GLOBAL_VAR static char *    blackboxName[MAX_BB_TYPES];
     14GLOBAL_VAR static int blackboxTableCnt=0;
    1515#define BLACKBOX_OFFSET (MAX_TOK+1)
    1616blackbox* getBlackboxStuff(const int t)
     
    126126int setBlackboxStuff(blackbox *bb, const char *n)
    127127{
    128   int where=-1;
    129   if (MAX_BB_TYPES<=blackboxTableCnt)
    130   {
    131     // second try, find empty slot from removed bb:
    132     for (int i=0;i<MAX_BB_TYPES;i++)
    133     {
    134       if (blackboxTable[i]==NULL) { where=i; break; }
    135     }
    136   }
    137   else
    138   {
    139     where=blackboxTableCnt;
    140     blackboxTableCnt++;
     128  int where = -1;   
     129  for (int i=0;i<MAX_BB_TYPES;i++)     
     130  {
     131    if (blackboxTable[i]!=NULL && strcmp(blackboxName[i],n)==0) {
     132      where = i;
     133      break;
     134    }
     135  }
     136  if (where < 0) {
     137    if (MAX_BB_TYPES<=blackboxTableCnt)
     138    {
     139      // second try, find empty slot from removed bb:
     140      for (int i=0;i<MAX_BB_TYPES;i++)
     141      {
     142        if (blackboxTable[i]==NULL) { where=i; break; }
     143      }
     144    }
     145    else
     146    {
     147      where=blackboxTableCnt;
     148      blackboxTableCnt++;
     149    }
    141150  }
    142151  if (where==-1)
Note: See TracChangeset for help on using the changeset viewer.