#include "ConnectHelper.h"
#include "ConnectCmd.h"
class mystr
{
public:
mystr()
{
LOG_INFO("create str");
_str = "";
}
mystr(const char * str)
{
LOG_INFO("create str %p", str);
size_t len = strlen(str);
_str = new char(len);
strcpy(_str, str);
}
mystr(const mystr & str)
{
LOG_INFO("create str");
size_t len = strlen(str._str);
_str = new char(len);
strcpy(_str, str._str);
}
mystr & operator = (const mystr & str)
{
LOG_INFO("create str");
size_t len = strlen(str._str);
_str = new char(len);
strcpy(_str, str._str);
return *this;
}
~mystr()
{
LOG_INFO("destroy str");
}
const char * c_str() const
{
return _str;
}
private:
char * _str;
};
void uppercasify(const mystr & str)
{
LOG_INFO("%p:%s", str.c_str(), str.c_str());
}
int main()
{
EventLoop baseLoop;
EventLoopThreadPool poolLoop(&baseLoop);
poolLoop.start(1);
{
char * str = (char *)malloc(100);
strcpy(str, "aaaBb");
LOG_INFO("main loop %p:%s", str, str);
//poolLoop.getNextLoop()->runInLoop(std::bind(uppercasify, mystr(str)));
poolLoop.getNextLoop()->runInLoop(std::bind(uppercasify, str));
str[1] = 'b';
}
baseLoop.loop();
return 0;
}
输出结果: