TinyWebServer icon indicating copy to clipboard operation
TinyWebServer copied to clipboard

:fire: Linux下C++轻量级WebServer服务器

Results 176 TinyWebServer issues
Sort by recently updated
recently updated
newest added

是什么原因使这里要进行两次检验啊(如果上一步timewait为true,那m_size应该就不会是0了,因为所有相关操作都加了锁)? if (m_size

//pop时,如果当前队列没有元素,将会等待条件变量 bool pop(T &item) { m_mutex.lock(); while (m_size

一、取任务 线程取任务会用while循环去检查信号量m_queuestat,为什么拿到信号量之后还要再判断队列是否为空呢?能拿到m_queuestat不就意味着队列肯定有任务吗? 二、放任务 append函数检查到队列超过上限后会直接退出,这样的话如果不会导致一些请求丢失吗? 我猜测这样做的原因是因为放任务是由主线程完成的,如果等待队列有位置再放入会阻塞主线程,从而影响程序运行?

直接被问懵 下来之后看代码,所有从socekt中read的数据都是一个完整HTTP请求,在处理完请求体之后就process_write()了。 假设read时socket缓冲里存在>=2个http请求,那第二个http请求不就没法处理了?是不是这个项目就没法处理粘包情况?

使用异步模式的时候write_log仅仅是把内容放进阻塞队列,然后立刻flush掉。但是异步执行的时候仅仅使用了fputs,并没有执行fflush这样会不会出问题?

在reator模式中,IO读写是多线程并行的, 但是模拟preactor模式中,IO读写都是在主线程中串行完成的, 按道理说,并行reactor会更快才对。 但是从参考的运行结果看,reactor并没有明显的性能优势,这是为什么呢? 是收到了测试环境的影响吗? 还是IO读写在整个过程中占比很小,并不是耗时的大头?