Changeset 16886
- Timestamp:
- Mar 8, 2008, 11:24:54 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/opihi/lib.shell/BufferOps.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/lib.shell/BufferOps.c
r16438 r16886 4 4 static int Nbuffers; 5 5 6 static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; 7 8 // this function is NOT thread protected : it is only used in startup and/or shutdown 6 9 void InitBuffers () { 7 10 Nbuffers = 0; … … 9 12 } 10 13 14 // this function is NOT thread protected : it is only used in startup and/or shutdown 11 15 void FreeBuffers () { 12 16 … … 66 70 if (i == Nbuffers) { 67 71 if (mode == OLDBUFFER) goto error; 68 Nbuffers += 1; 72 // lock to protect static array 73 pthread_mutex_lock (&mutex); 74 Nbuffers ++; 69 75 REALLOCATE (buffers, Buffer *, Nbuffers); 70 76 buffers[i] = InitBuffer (); 71 77 strcpy (buffers[i][0].name, name); 78 pthread_mutex_unlock (&mutex); 72 79 return (buffers[i]); 73 80 } … … 154 161 return (TRUE); 155 162 } 156 157 163 free (in); 164 165 pthread_mutex_lock (&mutex); 158 166 for (j = i; j < Nbuffers - 1; j++) buffers[j] = buffers[j + 1]; 159 Nbuffers - = 1;167 Nbuffers --; 160 168 REALLOCATE (buffers, Buffer *, MAX (Nbuffers, 1)); 169 pthread_mutex_unlock (&mutex); 161 170 return (TRUE); 162 171 } … … 175 184 free (buffers[i]); 176 185 186 pthread_mutex_lock (&mutex); 177 187 for (j = i; j < Nbuffers - 1; j++) buffers[j] = buffers[j + 1]; 178 179 Nbuffers -= 1; 188 Nbuffers --; 180 189 REALLOCATE (buffers, Buffer *, MAX (Nbuffers, 1)); 190 pthread_mutex_unlock (&mutex); 181 191 return (TRUE); 182 192 } … … 195 205 free (buffers[i]); 196 206 207 pthread_mutex_lock (&mutex); 197 208 for (j = i; j < Nbuffers - 1; j++) buffers[j] = buffers[j + 1]; 198 199 Nbuffers -= 1; 209 Nbuffers --; 200 210 REALLOCATE (buffers, Buffer *, MAX (Nbuffers, 1)); 211 pthread_mutex_unlock (&mutex); 201 212 return (TRUE); 202 213 }
Note:
See TracChangeset
for help on using the changeset viewer.
