Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

2010-06-01から1ヶ月間の記事一覧

consistent hashing

30越えて書いたことないなんて恥ずかしいので書いてみた。 #include <inttypes.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #define POINTS_PER_SERVER 100 #define MAX_HOST_LENGTH 128 typedef struct{ uint32_t index; uint32_t value; } point_item_t; typedef struct { char </string.h></stdio.h></stdlib.h></inttypes.h>…

libmemcachedのなか

ちょっと使えるかどうか調べた時に思ったこと。 libmemcached/connect.c /* libmemcached will always use nonblocking IO to avoid write deadlocks */ int flags; do flags= fcntl(ptr->fd, F_GETFL, 0); while (flags == -1 && (errno == EINTR || errno …

writevで全部書けなかった場合

なんか最近Cばっか書いてる気がするなあ。Non Blockingで書いてるとよくあるケース。 static int send_writev(int fd, struct iovec *iov, int iov_cnt, size_t total) { size_t w; int i = 0; w = writev(fd, iov, iov_cnt); if(w == -1){ //error if (errn…