Changeset af2a76c in mainline for uspace/srv/net/tcp/tqueue.c
- Timestamp:
- 2014-07-13T17:25:15Z (10 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 7493e7b
- Parents:
- b8e75319 (diff), 78192cc7 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/tcp/tqueue.c
rb8e75319 raf2a76c 59 59 static void tcp_tqueue_timer_clear(tcp_conn_t *conn); 60 60 61 #include <stdio.h> 61 62 int tcp_tqueue_init(tcp_tqueue_t *tqueue, tcp_conn_t *conn) 62 63 { 64 printf("tcp_tqueue_init\n"); 63 65 tqueue->conn = conn; 64 tqueue->timer = fibril_timer_create( );66 tqueue->timer = fibril_timer_create(&conn->lock); 65 67 if (tqueue->timer == NULL) 66 68 return ENOMEM; … … 78 80 void tcp_tqueue_fini(tcp_tqueue_t *tqueue) 79 81 { 82 printf("tcp_tqueue_fini\n"); 80 83 if (tqueue->timer != NULL) { 81 84 fibril_timer_destroy(tqueue->timer); … … 92 95 seg = tcp_segment_make_ctrl(ctrl); 93 96 tcp_tqueue_seg(conn, seg); 97 tcp_segment_delete(seg); 94 98 } 95 99 … … 212 216 213 217 tcp_tqueue_seg(conn, seg); 218 tcp_segment_delete(seg); 214 219 } 215 220 … … 317 322 log_msg(LOG_DEFAULT, LVL_DEBUG, "### %s: retransmit_timeout_func(%p)", conn->name, conn); 318 323 319 fibril_mutex_lock(&conn->lock);324 tcp_conn_lock(conn); 320 325 321 326 if (conn->cstate == st_closed) { 322 327 log_msg(LOG_DEFAULT, LVL_DEBUG, "Connection already closed."); 323 fibril_mutex_unlock(&conn->lock);328 tcp_conn_unlock(conn); 324 329 tcp_conn_delref(conn); 325 330 return; … … 329 334 if (link == NULL) { 330 335 log_msg(LOG_DEFAULT, LVL_DEBUG, "Nothing to retransmit"); 331 fibril_mutex_unlock(&conn->lock);336 tcp_conn_unlock(conn); 332 337 tcp_conn_delref(conn); 333 338 return; … … 339 344 if (rt_seg == NULL) { 340 345 log_msg(LOG_DEFAULT, LVL_ERROR, "Memory allocation failed."); 341 fibril_mutex_unlock(&conn->lock);346 tcp_conn_unlock(conn); 342 347 tcp_conn_delref(conn); 343 348 /* XXX Handle properly */ … … 351 356 tcp_tqueue_timer_set(tqe->conn); 352 357 353 fibril_mutex_unlock(&conn->lock);358 tcp_conn_unlock(conn); 354 359 tcp_conn_delref(conn); 360 361 log_msg(LOG_DEFAULT, LVL_DEBUG, "### %s: retransmit_timeout_func(%p) end", conn->name, conn); 355 362 } 356 363 … … 358 365 static void tcp_tqueue_timer_set(tcp_conn_t *conn) 359 366 { 360 log_msg(LOG_DEFAULT, LVL_DEBUG, "### %s: tcp_tqueue_timer_set() ", conn->name);367 log_msg(LOG_DEFAULT, LVL_DEBUG, "### %s: tcp_tqueue_timer_set() begin", conn->name); 361 368 362 369 /* Clear first to make sure we update refcnt correctly */ … … 364 371 365 372 tcp_conn_addref(conn); 366 fibril_timer_set (conn->retransmit.timer, RETRANSMIT_TIMEOUT,373 fibril_timer_set_locked(conn->retransmit.timer, RETRANSMIT_TIMEOUT, 367 374 retransmit_timeout_func, (void *) conn); 375 376 log_msg(LOG_DEFAULT, LVL_DEBUG, "### %s: tcp_tqueue_timer_set() end", conn->name); 368 377 } 369 378 … … 371 380 static void tcp_tqueue_timer_clear(tcp_conn_t *conn) 372 381 { 373 log_msg(LOG_DEFAULT, LVL_DEBUG, "### %s: tcp_tqueue_timer_clear() ", conn->name);374 375 if (fibril_timer_clear (conn->retransmit.timer) == fts_active)382 log_msg(LOG_DEFAULT, LVL_DEBUG, "### %s: tcp_tqueue_timer_clear() begin", conn->name); 383 384 if (fibril_timer_clear_locked(conn->retransmit.timer) == fts_active) 376 385 tcp_conn_delref(conn); 386 387 log_msg(LOG_DEFAULT, LVL_DEBUG, "### %s: tcp_tqueue_timer_clear() end", conn->name); 377 388 } 378 389
Note:
See TracChangeset
for help on using the changeset viewer.