Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import MySQL
- import PerfectThread
- #if os(Linux)
- import Glibc
- #else
- import Darwin
- #endif
- let mysql = MySQL()
- let lock = Threading.Lock()
- var jobs = 10
- func now(_ id: Int) {
- print("Job Now #", id)
- lock.doWithLock {
- let x = mysql.query(statement: "SELECT now() as time")
- guard x, let y = mysql.storeResults(),
- let row = y.next() else {
- print(mysql.errorMessage())
- return
- }
- print(row[0] ?? "Now() FAILED")
- y.close()
- jobs -= 1
- }
- }
- func user(_ id: Int) {
- print("Job Usr #", id)
- lock.doWithLock {
- let x = mysql.query(statement: "select User from user")
- guard x, let y = mysql.storeResults(),
- let row = y.next() else {
- print(mysql.errorMessage())
- return
- }
- print(row[0] ?? "User() FAILED")
- y.close()
- jobs -= 1
- }
- }
- _ = mysql.setOption(.MYSQL_SET_CHARSET_NAME, "utf8mb4")
- guard mysql.connect(host: "127.0.0.1", user: "root", password: "your pass", db: "mysql") else {
- print(mysql.errorMessage())
- exit(0)
- }
- jobs = 10
- for id in 0 ..< 5 {
- Threading.dispatch {
- now(id)
- }
- Threading.dispatch {
- user(id)
- }
- }
- while jobs > 0 {
- sleep(1)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement