Changeset 80d8885 in mainline for uspace/srv/logger/namespace.c
- Timestamp:
- 2012-08-16T15:08:19Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- dc5aa568
- Parents:
- 32b26cf7
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/logger/namespace.c
r32b26cf7 r80d8885 71 71 if (context >= namespace->context_count) { 72 72 fibril_mutex_unlock(&namespace->guard); 73 fprintf(stderr, "Invalid context!\n"); 73 74 return LVL_FATAL; 74 75 } … … 265 266 } 266 267 268 int namespace_change_context_level(logging_namespace_t *namespace, const char *context, log_level_t new_level) 269 { 270 if (new_level >= LVL_LIMIT) 271 return ERANGE; 272 273 int rc; 274 fibril_mutex_lock(&namespace->guard); 275 for (size_t i = 0; i < namespace->context_count; i++) { 276 if (str_cmp(namespace->context[i].name, context) == 0) { 277 namespace->context[i].level = new_level; 278 rc = EOK; 279 fibril_condvar_broadcast(&namespace->level_changed_cv); 280 goto leave; 281 } 282 } 283 rc = ENOENT; 284 285 leave: 286 fibril_mutex_unlock(&namespace->guard); 287 return rc; 288 } 289 267 290 void namespace_wait_for_reader_change(logging_namespace_t *namespace, bool *has_reader_now) 268 291 { 269 292 fibril_mutex_lock(&namespace->guard); 270 log_level_t previous_level = namespace->level; 271 while (previous_level == namespace->level) { 272 fibril_condvar_wait(&namespace->level_changed_cv, &namespace->guard); 273 } 293 // FIXME: properly watch for state change 294 fibril_condvar_wait(&namespace->level_changed_cv, &namespace->guard); 274 295 *has_reader_now = true; 275 296 fibril_mutex_unlock(&namespace->guard);
Note:
See TracChangeset
for help on using the changeset viewer.