* */
| 247 | * |
| 248 | */ |
| 249 | int mq_head_fetch(str *name) |
| 250 | { |
| 251 | mq_head_t *mh = NULL; |
| 252 | mq_pv_t *mp = NULL; |
| 253 | |
| 254 | mp = mq_pv_get(name); |
| 255 | if(mp == NULL) |
| 256 | return -1; |
| 257 | if(mp->item != NULL) { |
| 258 | shm_free(mp->item); |
| 259 | mp->item = NULL; |
| 260 | } |
| 261 | mh = mq_head_get(name); |
| 262 | if(mh == NULL) |
| 263 | return -1; |
| 264 | lock_get(&mh->lock); |
| 265 | |
| 266 | mp->item = mq_head_fetch_item(mh); |
| 267 | |
| 268 | lock_release(&mh->lock); |
| 269 | return (mp->item?0:-2); |
| 270 | } |
| 271 | |
| 272 | /** |
| 273 | * |
no test coverage detected